Contents
About This Report
Report Parameters
Contexts
No contexts were selected, so all contexts were included by default.
Sites
The following sites were included:
- https://firefox-settings-attachments.cdn.mozilla.net
- https://localhost:3000
- https://localhost:4000
(If no sites were selected, all sites were included by default.)
An included site must also be within one of the included contexts for its data to be included in the report.
Risk levels
Included: Hoog, Gemiddeld, Laag, Informatief
Excluded: None
Confidence levels
Included: User Confirmed, Hoog, Gemiddeld, Laag
Excluded: User Confirmed, Hoog, Gemiddeld, Laag, Fout Positief
Summaries
Alert Counts by Risk and Confidence
| Confidence | ||||||
|---|---|---|---|---|---|---|
| User Confirmed | Hoog | Gemiddeld | Laag | Total | ||
| Risk | Hoog | 0 (0,0%) |
0 (0,0%) |
0 (0,0%) |
0 (0,0%) |
0 (0,0%) |
| Gemiddeld | 0 (0,0%) |
0 (0,0%) |
0 (0,0%) |
1 (12,5%) |
1 (12,5%) |
|
| Laag | 0 (0,0%) |
1 (12,5%) |
1 (12,5%) |
1 (12,5%) |
3 (37,5%) |
|
| Informatief | 0 (0,0%) |
0 (0,0%) |
2 (25,0%) |
2 (25,0%) |
4 (50,0%) |
|
| Total | 0 (0,0%) |
1 (12,5%) |
3 (37,5%) |
4 (50,0%) |
8 (100%) |
|
Alert Counts by Site and Risk
| Risk | |||||
|---|---|---|---|---|---|
|
Hoog (= Hoog) |
Gemiddeld (>= Gemiddeld) |
Laag (>= Laag) |
Informatief (>= Informatief) |
||
| Site | https://firefox-settings-attachments.cdn.mozilla.net | 0 (0) |
0 (0) |
2 (2) |
1 (3) |
| https://localhost:4000 | 0 (0) |
1 (1) |
1 (2) |
3 (5) |
|
Alert Counts by Alert Type
| Alert type | Risk | Count |
|---|---|---|
| Directory Browsing | Gemiddeld | 1 (12,5%) |
| Strict-Transport-Security Header Not Set | Laag | 9 (112,5%) |
| Timestamp Disclosure - Unix | Laag | 4 (50,0%) |
| X-Content-Type-Options Header Missing | Laag | 4 (50,0%) |
| Information Disclosure - Suspicious Comments | Informatief | 32 (400,0%) |
| Modern Web Application | Informatief | 5 (62,5%) |
| Re-examine Cache-control Directives | Informatief | 10 (125,0%) |
| Retrieved from Cache | Informatief | 4 (50,0%) |
| Total | 8 |
Insights
| Level | Reason | Site | Description | Statistic |
|---|---|---|---|---|
|
High
|
Exceeded High
|
Percentage of memory used
|
97
|
|
|
Info
|
Informational
|
https://firefox-settings-attachments.cdn.mozilla.net
|
Percentage of responses with status code 2xx
|
100 %
|
|
Info
|
Informational
|
https://firefox-settings-attachments.cdn.mozilla.net
|
Percentage of endpoints with content type text/plain
|
100 %
|
|
Info
|
Informational
|
https://firefox-settings-attachments.cdn.mozilla.net
|
Percentage of endpoints with method GET
|
100 %
|
|
Info
|
Informational
|
https://firefox-settings-attachments.cdn.mozilla.net
|
Count of total endpoints
|
4
|
|
Info
|
Informational
|
https://firefox-settings-attachments.cdn.mozilla.net
|
Percentage of slow responses
|
33 %
|
|
Info
|
Informational
|
https://localhost:3000
|
Percentage of responses with status code 2xx
|
66 %
|
|
Info
|
Informational
|
https://localhost:3000
|
Percentage of responses with status code 4xx
|
33 %
|
|
Info
|
Informational
|
https://localhost:3000
|
Percentage of endpoints with content type application/json
|
66 %
|
|
Info
|
Informational
|
https://localhost:3000
|
Percentage of endpoints with method GET
|
66 %
|
|
Info
|
Informational
|
https://localhost:3000
|
Percentage of endpoints with method OPTIONS
|
33 %
|
|
Info
|
Informational
|
https://localhost:3000
|
Count of total endpoints
|
3
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of responses with status code 1xx
|
1 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of responses with status code 2xx
|
28 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of responses with status code 3xx
|
1 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of responses with status code 4xx
|
68 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of endpoints with content type application/javascript
|
71 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of endpoints with content type application/json
|
8 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of endpoints with content type image/png
|
1 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of endpoints with content type image/x-icon
|
1 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of endpoints with content type text/css
|
2 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of endpoints with content type text/html
|
12 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of endpoints with method GET
|
100 %
|
|
Info
|
Informational
|
https://localhost:4000
|
Count of total endpoints
|
71
|
|
Info
|
Informational
|
https://localhost:4000
|
Percentage of slow responses
|
2 %
|
Alerts
-
Risk=Gemiddeld, Confidence=Laag (1)
-
https://localhost:4000 (1)
-
Directory Browsing (1)
GET https://localhost:4000/_next/static/chunks/node_modules_next_dist_client_4202d2da._.js/
Alert tags Alert description It is possible to view the directory listing. Directory listing may reveal hidden scripts, include files, backup source files, etc. which can be accessed to read sensitive information.
Request Request line and header section (411 bytes)
GET https://localhost:4000/_next/static/chunks/node_modules_next_dist_client_4202d2da._.js/ HTTP/1.1 host: localhost:4000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:146.0) Gecko/20100101 Firefox/146.0 Accept: */* Accept-Language: nl,en-US;q=0.7,en;q=0.3 Connection: keep-alive Referer: https://localhost:4000/ Sec-Fetch-Dest: script Sec-Fetch-Mode: no-cors Sec-Fetch-Site: same-originRequest body (0 bytes)
Response Status line and header section (708 bytes)
HTTP/1.1 200 OK Content-Security-Policy: default-src 'self'; script-src 'self' https://localhost:3000; style-src 'self' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' https://localhost:3000; connect-src 'self' https://localhost:3000; frame-ancestors 'self'; form-action 'self'; X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Cache-Control: no-store, must-revalidate Accept-Ranges: bytes Last-Modified: Sun, 21 Dec 2025 14:59:25 GMT ETag: W/"382fc-19b416c26ef" Content-Type: application/javascript; charset=UTF-8 Content-Length: 230140 Vary: Accept-Encoding Date: Mon, 22 Dec 2025 19:30:21 GMT Connection: keep-alive Keep-Alive: timeout=5Response body (230140 bytes)
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined, "[project]/node_modules/next/dist/client/portal/index.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "Portal", { enumerable: true, get: function() { return Portal; } }); const _react = __turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)"); const _reactdom = __turbopack_context__.r("[project]/node_modules/react-dom/index.js [client] (ecmascript)"); const Portal = ({ children, type })=>{ const [portalNode, setPortalNode] = (0, _react.useState)(null); (0, _react.useEffect)(()=>{ const element = document.createElement(type); document.body.appendChild(element); setPortalNode(element); return ()=>{ document.body.removeChild(element); }; }, [ type ]); return portalNode ? /*#__PURE__*/ (0, _reactdom.createPortal)(children, portalNode) : null; }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=index.js.map }), "[project]/node_modules/next/dist/client/set-attributes-from-props.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "setAttributesFromProps", { enumerable: true, get: function() { return setAttributesFromProps; } }); const DOMAttributeNames = { acceptCharset: 'accept-charset', className: 'class', htmlFor: 'for', httpEquiv: 'http-equiv', noModule: 'noModule' }; const ignoreProps = [ 'onLoad', 'onReady', 'dangerouslySetInnerHTML', 'children', 'onError', 'strategy', 'stylesheets' ]; function isBooleanScriptAttribute(attr) { return [ 'async', 'defer', 'noModule' ].includes(attr); } function setAttributesFromProps(el, props) { for (const [p, value] of Object.entries(props)){ if (!props.hasOwnProperty(p)) continue; if (ignoreProps.includes(p)) continue; // we don't render undefined props to the DOM if (value === undefined) { continue; } const attr = DOMAttributeNames[p] || p.toLowerCase(); if (el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr)) { // Correctly assign boolean script attributes // https://github.com/vercel/next.js/pull/20748 ; el[attr] = !!value; } else { el.setAttribute(attr, String(value)); } // Remove falsy non-zero boolean attributes so they are correctly interpreted // (e.g. if we set them to false, this coerces to the string "false", which the browser interprets as true) if (value === false || el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr) && (!value || value === 'false')) { // Call setAttribute before, as we need to set and unset the attribute to override force async: // https://html.spec.whatwg.org/multipage/scripting.html#script-force-async el.setAttribute(attr, ''); el.removeAttribute(attr); } } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=set-attributes-from-props.js.map }), "[project]/node_modules/next/dist/client/head-manager.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { default: null, isEqualNode: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { default: function() { return initHeadManager; }, isEqualNode: function() { return isEqualNode; } }); const _setattributesfromprops = __turbopack_context__.r("[project]/node_modules/next/dist/client/set-attributes-from-props.js [client] (ecmascript)"); function reactElementToDOM({ type, props }) { const el = document.createElement(type); (0, _setattributesfromprops.setAttributesFromProps)(el, props); const { children, dangerouslySetInnerHTML } = props; if (dangerouslySetInnerHTML) { el.innerHTML = dangerouslySetInnerHTML.__html || ''; } else if (children) { el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : ''; } return el; } function isEqualNode(oldTag, newTag) { if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) { const nonce = newTag.getAttribute('nonce'); // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not // be stripped if there is no content security policy response header that includes a nonce. if (nonce && !oldTag.getAttribute('nonce')) { const cloneTag = newTag.cloneNode(true); cloneTag.setAttribute('nonce', ''); cloneTag.nonce = nonce; return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag); } } return oldTag.isEqualNode(newTag); } function updateElements(type, components) { const headEl = document.querySelector('head'); if (!headEl) return; const oldTags = new Set(headEl.querySelectorAll(`${type}[data-next-head]`)); if (type === 'meta') { const metaCharset = headEl.querySelector('meta[charset]'); if (metaCharset !== null) { oldTags.add(metaCharset); } } const newTags = []; for(let i = 0; i < components.length; i++){ const component = components[i]; const newTag = reactElementToDOM(component); newTag.setAttribute('data-next-head', ''); let isNew = true; for (const oldTag of oldTags){ if (isEqualNode(oldTag, newTag)) { oldTags.delete(oldTag); isNew = false; break; } } if (isNew) { newTags.push(newTag); } } for (const oldTag of oldTags){ oldTag.parentNode?.removeChild(oldTag); } for (const newTag of newTags){ // meta[charset] must be first element so special case if (newTag.tagName.toLowerCase() === 'meta' && newTag.getAttribute('charset') !== null) { headEl.prepend(newTag); } headEl.appendChild(newTag); } } function initHeadManager() { return { mountedInstances: new Set(), updateHead: (head)=>{ const tags = {}; head.forEach((h)=>{ if (// it won't be inlined. In this case revert to the original behavior h.type === 'link' && h.props['data-optimized-fonts']) { if (document.querySelector(`style[data-href="${h.props['data-href']}"]`)) { return; } else { h.props.href = h.props['data-href']; h.props['data-href'] = undefined; } } const components = tags[h.type] || []; components.push(h); tags[h.type] = components; }); const titleComponent = tags.title ? tags.title[0] : null; let title = ''; if (titleComponent) { const { children } = titleComponent.props; title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : ''; } if (title !== document.title) document.title = title; [ 'meta', 'base', 'link', 'style', 'script' ].forEach((type)=>{ updateElements(type, tags[type] || []); }); } }; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=head-manager.js.map }), "[project]/node_modules/next/dist/client/normalize-trailing-slash.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "normalizePathTrailingSlash", { enumerable: true, get: function() { return normalizePathTrailingSlash; } }); const _removetrailingslash = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js [client] (ecmascript)"); const _parsepath = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/parse-path.js [client] (ecmascript)"); const normalizePathTrailingSlash = (path)=>{ if (!path.startsWith('/') || ("TURBOPACK compile-time value", void 0)) { return path; } const { pathname, query, hash } = (0, _parsepath.parsePath)(path); if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; return `${(0, _removetrailingslash.removeTrailingSlash)(pathname)}${query}${hash}`; }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=normalize-trailing-slash.js.map }), "[project]/node_modules/next/dist/client/add-base-path.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "addBasePath", { enumerable: true, get: function() { return addBasePath; } }); const _addpathprefix = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js [client] (ecmascript)"); const _normalizetrailingslash = __turbopack_context__.r("[project]/node_modules/next/dist/client/normalize-trailing-slash.js [client] (ecmascript)"); const basePath = ("TURBOPACK compile-time value", "") || ''; function addBasePath(path, required) { return (0, _normalizetrailingslash.normalizePathTrailingSlash)(("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : (0, _addpathprefix.addPathPrefix)(path, basePath)); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=add-base-path.js.map }), "[project]/node_modules/next/dist/client/add-locale.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "addLocale", { enumerable: true, get: function() { return addLocale; } }); const _normalizetrailingslash = __turbopack_context__.r("[project]/node_modules/next/dist/client/normalize-trailing-slash.js [client] (ecmascript)"); const addLocale = (path, ...args)=>{ if ("TURBOPACK compile-time truthy", 1) { return (0, _normalizetrailingslash.normalizePathTrailingSlash)(__turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/add-locale.js [client] (ecmascript)").addLocale(path, ...args)); } //TURBOPACK unreachable ; }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=add-locale.js.map }), "[project]/node_modules/next/dist/client/trusted-types.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; /** * Stores the Trusted Types Policy. Starts as undefined and can be set to null * if Trusted Types is not supported in the browser. */ Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__unsafeCreateTrustedScriptURL", { enumerable: true, get: function() { return __unsafeCreateTrustedScriptURL; } }); let policy; /** * Getter for the Trusted Types Policy. If it is undefined, it is instantiated * here or set to null if Trusted Types is not supported in the browser. */ function getPolicy() { if (typeof policy === 'undefined' && typeof window !== 'undefined') { policy = window.trustedTypes?.createPolicy('nextjs', { createHTML: (input)=>input, createScript: (input)=>input, createScriptURL: (input)=>input }) || null; } return policy; } function __unsafeCreateTrustedScriptURL(url) { return getPolicy()?.createScriptURL(url) || url; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=trusted-types.js.map }), "[project]/node_modules/next/dist/client/request-idle-callback.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { cancelIdleCallback: null, requestIdleCallback: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { cancelIdleCallback: function() { return cancelIdleCallback; }, requestIdleCallback: function() { return requestIdleCallback; } }); const requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) { let start = Date.now(); return self.setTimeout(function() { cb({ didTimeout: false, timeRemaining: function() { return Math.max(0, 50 - (Date.now() - start)); } }); }, 1); }; const cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) { return clearTimeout(id); }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=request-idle-callback.js.map }), "[project]/node_modules/next/dist/client/route-loader.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { createRouteLoader: null, getClientBuildManifest: null, isAssetError: null, markAssetError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { createRouteLoader: function() { return createRouteLoader; }, getClientBuildManifest: function() { return getClientBuildManifest; }, isAssetError: function() { return isAssetError; }, markAssetError: function() { return markAssetError; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _getassetpathfromroute = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js [client] (ecmascript)")); const _trustedtypes = __turbopack_context__.r("[project]/node_modules/next/dist/client/trusted-types.js [client] (ecmascript)"); const _requestidlecallback = __turbopack_context__.r("[project]/node_modules/next/dist/client/request-idle-callback.js [client] (ecmascript)"); const _deploymentid = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/deployment-id.js [client] (ecmascript)"); const _encodeuripath = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/encode-uri-path.js [client] (ecmascript)"); // 3.8s was arbitrarily chosen as it's what https://web.dev/interactive // considers as "Good" time-to-interactive. We must assume something went // wrong beyond this point, and then fall-back to a full page transition to // show the user something of value. const MS_MAX_IDLE_DELAY = 3800; function withFuture(key, map, generator) { let entry = map.get(key); if (entry) { if ('future' in entry) { return entry.future; } return Promise.resolve(entry); } let resolver; const prom = new Promise((resolve)=>{ resolver = resolve; }); map.set(key, { resolve: resolver, future: prom }); return generator ? generator().then((value)=>{ resolver(value); return value; }).catch((err)=>{ map.delete(key); throw err; }) : prom; } const ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR'); function markAssetError(err) { return Object.defineProperty(err, ASSET_LOAD_ERROR, {}); } function isAssetError(err) { return err && ASSET_LOAD_ERROR in err; } function hasPrefetch(link) { try { link = document.createElement('link'); return(// with relList.support !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch')); } catch { return false; } } const canPrefetch = hasPrefetch(); const getAssetQueryString = ()=>{ return (0, _deploymentid.getDeploymentIdQueryOrEmptyString)(); }; function prefetchViaDom(href, as, link) { return new Promise((resolve, reject)=>{ const selector = ` link[rel="prefetch"][href^="${href}"], link[rel="preload"][href^="${href}"], script[src^="${href}"]`; if (document.querySelector(selector)) { return resolve(); } link = document.createElement('link'); // The order of property assignment here is intentional: if (as) link.as = as; link.rel = `prefetch`; link.crossOrigin = ("TURBOPACK compile-time value", void 0); link.onload = resolve; link.onerror = ()=>reject(markAssetError(Object.defineProperty(new Error(`Failed to prefetch: ${href}`), "__NEXT_ERROR_CODE", { value: "E268", enumerable: false, configurable: true }))); // `href` should always be last: link.href = href; document.head.appendChild(link); }); } function appendScript(src, script) { return new Promise((resolve, reject)=>{ script = document.createElement('script'); // The order of property assignment here is intentional. // 1. Setup success/failure hooks in case the browser synchronously // executes when `src` is set. script.onload = resolve; script.onerror = ()=>reject(markAssetError(Object.defineProperty(new Error(`Failed to load script: ${src}`), "__NEXT_ERROR_CODE", { value: "E74", enumerable: false, configurable: true }))); // 2. Configure the cross-origin attribute before setting `src` in case the // browser begins to fetch. script.crossOrigin = ("TURBOPACK compile-time value", void 0); // 3. Finally, set the source and inject into the DOM in case the child // must be appended for fetching to start. script.src = src; document.body.appendChild(script); }); } // We wait for pages to be built in dev before we start the route transition // timeout to prevent an un-necessary hard navigation in development. let devBuildPromise; // Resolve a promise that times out after given amount of milliseconds. function resolvePromiseWithTimeout(p, ms, err) { return new Promise((resolve, reject)=>{ let cancelled = false; p.then((r)=>{ // Resolved, cancel the timeout cancelled = true; resolve(r); }).catch(reject); // We wrap these checks separately for better dead-code elimination in // production bundles. if ("TURBOPACK compile-time truthy", 1) { ; (devBuildPromise || Promise.resolve()).then(()=>{ (0, _requestidlecallback.requestIdleCallback)(()=>setTimeout(()=>{ if (!cancelled) { reject(err); } }, ms)); }); } if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; }); } function getClientBuildManifest() { if (self.__BUILD_MANIFEST) { return Promise.resolve(self.__BUILD_MANIFEST); } const onBuildManifest = new Promise((resolve)=>{ // Mandatory because this is not concurrent safe: const cb = self.__BUILD_MANIFEST_CB; self.__BUILD_MANIFEST_CB = ()=>{ resolve(self.__BUILD_MANIFEST); cb && cb(); }; }); return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(Object.defineProperty(new Error('Failed to load client build manifest'), "__NEXT_ERROR_CODE", { value: "E273", enumerable: false, configurable: true }))); } function getFilesForRoute(assetPrefix, route) { if ("TURBOPACK compile-time truthy", 1) { const scriptUrl = assetPrefix + '/_next/static/chunks/pages' + (0, _encodeuripath.encodeURIPath)((0, _getassetpathfromroute.default)(route, '.js')) + getAssetQueryString(); return Promise.resolve({ scripts: [ (0, _trustedtypes.__unsafeCreateTrustedScriptURL)(scriptUrl) ], // Styles are handled by `style-loader` in development: css: [] }); } //TURBOPACK unreachable ; } function createRouteLoader(assetPrefix) { const entrypoints = new Map(); const loadedScripts = new Map(); const styleSheets = new Map(); const routes = new Map(); function maybeExecuteScript(src) { // With HMR we might need to "reload" scripts when they are // disposed and readded. Executing scripts twice has no functional // differences if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; else { return appendScript(src); } } function fetchStyleSheet(href) { let prom = styleSheets.get(href); if (prom) { return prom; } styleSheets.set(href, prom = fetch(href, { credentials: 'same-origin' }).then((res)=>{ if (!res.ok) { throw Object.defineProperty(new Error(`Failed to load stylesheet: ${href}`), "__NEXT_ERROR_CODE", { value: "E189", enumerable: false, configurable: true }); } return res.text().then((text)=>({ href: href, content: text })); }).catch((err)=>{ throw markAssetError(err); })); return prom; } return { whenEntrypoint (route) { return withFuture(route, entrypoints); }, onEntrypoint (route, execute) { ; (execute ? Promise.resolve().then(()=>execute()).then((exports1)=>({ component: exports1 && exports1.default || exports1, exports: exports1 }), (err)=>({ error: err })) : Promise.resolve(undefined)).then((input)=>{ const old = entrypoints.get(route); if (old && 'resolve' in old) { if (input) { entrypoints.set(route, input); old.resolve(input); } } else { if (input) { entrypoints.set(route, input); } else { entrypoints.delete(route); } // when this entrypoint has been resolved before // the route is outdated and we want to invalidate // this cache entry routes.delete(route); } }); }, loadRoute (route, prefetch) { return withFuture(route, routes, ()=>{ let devBuildPromiseResolve; if ("TURBOPACK compile-time truthy", 1) { devBuildPromise = new Promise((resolve)=>{ devBuildPromiseResolve = resolve; }); } return resolvePromiseWithTimeout(getFilesForRoute(assetPrefix, route).then(({ scripts, css })=>{ return Promise.all([ entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)), Promise.all(css.map(fetchStyleSheet)) ]); }).then((res)=>{ return this.whenEntrypoint(route).then((entrypoint)=>({ entrypoint, styles: res[1] })); }), MS_MAX_IDLE_DELAY, markAssetError(Object.defineProperty(new Error(`Route did not complete loading: ${route}`), "__NEXT_ERROR_CODE", { value: "E12", enumerable: false, configurable: true }))).then(({ entrypoint, styles })=>{ const res = Object.assign({ styles: styles }, entrypoint); return 'error' in entrypoint ? entrypoint : res; }).catch((err)=>{ if (prefetch) { // we don't want to cache errors during prefetch throw err; } return { error: err }; }).finally(()=>devBuildPromiseResolve?.()); }); }, prefetch (route) { // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118 // License: Apache 2.0 let cn; if (cn = navigator.connection) { // Don't prefetch if using 2G or if Save-Data is enabled. if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve(); } return getFilesForRoute(assetPrefix, route).then((output)=>Promise.all(canPrefetch ? output.scripts.map((script)=>prefetchViaDom(script.toString(), 'script')) : [])).then(()=>{ (0, _requestidlecallback.requestIdleCallback)(()=>this.loadRoute(route, true).catch(()=>{})); }).catch(()=>{}); } }; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=route-loader.js.map }), "[project]/node_modules/next/dist/client/page-loader.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return PageLoader; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _addbasepath = __turbopack_context__.r("[project]/node_modules/next/dist/client/add-base-path.js [client] (ecmascript)"); const _interpolateas = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/interpolate-as.js [client] (ecmascript)"); const _getassetpathfromroute = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js [client] (ecmascript)")); const _addlocale = __turbopack_context__.r("[project]/node_modules/next/dist/client/add-locale.js [client] (ecmascript)"); const _isdynamic = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js [client] (ecmascript)"); const _parserelativeurl = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js [client] (ecmascript)"); const _removetrailingslash = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js [client] (ecmascript)"); const _routeloader = __turbopack_context__.r("[project]/node_modules/next/dist/client/route-loader.js [client] (ecmascript)"); const _constants = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/constants.js [client] (ecmascript)"); class PageLoader { constructor(buildId, assetPrefix){ this.routeLoader = (0, _routeloader.createRouteLoader)(assetPrefix); this.buildId = buildId; this.assetPrefix = assetPrefix; this.promisedSsgManifest = new Promise((resolve)=>{ if (window.__SSG_MANIFEST) { resolve(window.__SSG_MANIFEST); } else { window.__SSG_MANIFEST_CB = ()=>{ resolve(window.__SSG_MANIFEST); }; } }); } getPageList() { if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; else { if (window.__DEV_PAGES_MANIFEST) { return window.__DEV_PAGES_MANIFEST.pages; } else { this.promisedDevPagesManifest ||= fetch(`${this.assetPrefix}/_next/static/development/${_constants.DEV_CLIENT_PAGES_MANIFEST}`, { credentials: 'same-origin' }).then((res)=>res.json()).then((manifest)=>{ window.__DEV_PAGES_MANIFEST = manifest; return manifest.pages; }).catch((err)=>{ console.log(`Failed to fetch devPagesManifest:`, err); throw Object.defineProperty(new Error(`Failed to fetch _devPagesManifest.json. Is something blocking that network request?\n` + 'Read more: https://nextjs.org/docs/messages/failed-to-fetch-devpagesmanifest'), "__NEXT_ERROR_CODE", { value: "E423", enumerable: false, configurable: true }); }); return this.promisedDevPagesManifest; } } } getMiddleware() { // Webpack production if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; else if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; else { if (window.__DEV_MIDDLEWARE_MATCHERS) { return window.__DEV_MIDDLEWARE_MATCHERS; } else { if (!this.promisedMiddlewareMatchers) { // TODO: Decide what should happen when fetching fails instead of asserting // @ts-ignore this.promisedMiddlewareMatchers = fetch(`${this.assetPrefix}/_next/static/${this.buildId}/${_constants.DEV_CLIENT_MIDDLEWARE_MANIFEST}`, { credentials: 'same-origin' }).then((res)=>res.json()).then((matchers)=>{ window.__DEV_MIDDLEWARE_MATCHERS = matchers; return matchers; }).catch((err)=>{ console.log(`Failed to fetch _devMiddlewareManifest`, err); }); } // TODO Remove this assertion as this could be undefined return this.promisedMiddlewareMatchers; } } } getDataHref(params) { const { asPath, href, locale } = params; const { pathname: hrefPathname, query, search } = (0, _parserelativeurl.parseRelativeUrl)(href); const { pathname: asPathname } = (0, _parserelativeurl.parseRelativeUrl)(asPath); const route = (0, _removetrailingslash.removeTrailingSlash)(hrefPathname); if (route[0] !== '/') { throw Object.defineProperty(new Error(`Route name should start with a "/", got "${route}"`), "__NEXT_ERROR_CODE", { value: "E303", enumerable: false, configurable: true }); } const getHrefForSlug = (path)=>{ const dataRoute = (0, _getassetpathfromroute.default)((0, _removetrailingslash.removeTrailingSlash)((0, _addlocale.addLocale)(path, locale)), '.json'); return (0, _addbasepath.addBasePath)(`/_next/data/${this.buildId}${dataRoute}${search}`, true); }; return getHrefForSlug(params.skipInterpolation ? asPathname : (0, _isdynamic.isDynamicRoute)(route) ? (0, _interpolateas.interpolateAs)(hrefPathname, asPathname, query).result : route); } _isSsg(/** the route (file-system path) */ route) { return this.promisedSsgManifest.then((manifest)=>manifest.has(route)); } loadPage(route) { return this.routeLoader.loadRoute(route).then((res)=>{ if ('component' in res) { return { page: res.component, mod: res.exports, styleSheets: res.styles.map((o)=>({ href: o.href, text: o.content })) }; } throw res.error; }); } prefetch(route) { return this.routeLoader.prefetch(route); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=page-loader.js.map }), "[project]/node_modules/next/dist/client/script.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { default: null, handleClientScriptLoad: null, initScriptLoader: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { default: function() { return _default; }, handleClientScriptLoad: function() { return handleClientScriptLoad; }, initScriptLoader: function() { return initScriptLoader; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _interop_require_wildcard = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs [client] (ecmascript)"); const _jsxruntime = __turbopack_context__.r("[project]/node_modules/react/jsx-runtime.js [client] (ecmascript)"); const _reactdom = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/react-dom/index.js [client] (ecmascript)")); const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)")); const _headmanagercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js [client] (ecmascript)"); const _setattributesfromprops = __turbopack_context__.r("[project]/node_modules/next/dist/client/set-attributes-from-props.js [client] (ecmascript)"); const _requestidlecallback = __turbopack_context__.r("[project]/node_modules/next/dist/client/request-idle-callback.js [client] (ecmascript)"); const ScriptCache = new Map(); const LoadCache = new Set(); const insertStylesheets = (stylesheets)=>{ // Case 1: Styles for afterInteractive/lazyOnload with appDir injected via handleClientScriptLoad // // Using ReactDOM.preinit to feature detect appDir and inject styles // Stylesheets might have already been loaded if initialized with Script component // Re-inject styles here to handle scripts loaded via handleClientScriptLoad // ReactDOM.preinit handles dedup and ensures the styles are loaded only once if (_reactdom.default.preinit) { stylesheets.forEach((stylesheet)=>{ _reactdom.default.preinit(stylesheet, { as: 'style' }); }); return; } // Case 2: Styles for afterInteractive/lazyOnload with pages injected via handleClientScriptLoad // // We use this function to load styles when appdir is not detected // TODO: Use React float APIs to load styles once available for pages dir if (typeof window !== 'undefined') { let head = document.head; stylesheets.forEach((stylesheet)=>{ let link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = stylesheet; head.appendChild(link); }); } }; const loadScript = (props)=>{ const { src, id, onLoad = ()=>{}, onReady = null, dangerouslySetInnerHTML, children = '', strategy = 'afterInteractive', onError, stylesheets } = props; const cacheKey = id || src; // Script has already loaded if (cacheKey && LoadCache.has(cacheKey)) { return; } // Contents of this script are already loading/loaded if (ScriptCache.has(src)) { LoadCache.add(cacheKey); // It is possible that multiple `next/script` components all have same "src", but has different "onLoad" // This is to make sure the same remote script will only load once, but "onLoad" are executed in order ScriptCache.get(src).then(onLoad, onError); return; } /** Execute after the script first loaded */ const afterLoad = ()=>{ // Run onReady for the first time after load event if (onReady) { onReady(); } // add cacheKey to LoadCache when load successfully LoadCache.add(cacheKey); }; const el = document.createElement('script'); const loadPromise = new Promise((resolve, reject)=>{ el.addEventListener('load', function(e) { resolve(); if (onLoad) { onLoad.call(this, e); } afterLoad(); }); el.addEventListener('error', function(e) { reject(e); }); }).catch(function(e) { if (onError) { onError(e); } }); if (dangerouslySetInnerHTML) { // Casting since lib.dom.d.ts doesn't have TrustedHTML yet. el.innerHTML = dangerouslySetInnerHTML.__html || ''; afterLoad(); } else if (children) { el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : ''; afterLoad(); } else if (src) { el.src = src; // do not add cacheKey into LoadCache for remote script here // cacheKey will be added to LoadCache when it is actually loaded (see loadPromise above) ScriptCache.set(src, loadPromise); } (0, _setattributesfromprops.setAttributesFromProps)(el, props); if (strategy === 'worker') { el.setAttribute('type', 'text/partytown'); } el.setAttribute('data-nscript', strategy); // Load styles associated with this script if (stylesheets) { insertStylesheets(stylesheets); } document.body.appendChild(el); }; function handleClientScriptLoad(props) { const { strategy = 'afterInteractive' } = props; if (strategy === 'lazyOnload') { window.addEventListener('load', ()=>{ (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props)); }); } else { loadScript(props); } } function loadLazyScript(props) { if (document.readyState === 'complete') { (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props)); } else { window.addEventListener('load', ()=>{ (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props)); }); } } function addBeforeInteractiveToCache() { const scripts = [ ...document.querySelectorAll('[data-nscript="beforeInteractive"]'), ...document.querySelectorAll('[data-nscript="beforePageRender"]') ]; scripts.forEach((script)=>{ const cacheKey = script.id || script.getAttribute('src'); LoadCache.add(cacheKey); }); } function initScriptLoader(scriptLoaderItems) { scriptLoaderItems.forEach(handleClientScriptLoad); addBeforeInteractiveToCache(); } /** * Load a third-party scripts in an optimized way. * * Read more: [Next.js Docs: `next/script`](https://nextjs.org/docs/app/api-reference/components/script) */ function Script(props) { const { id, src = '', onLoad = ()=>{}, onReady = null, strategy = 'afterInteractive', onError, stylesheets, ...restProps } = props; // Context is available only during SSR let { updateScripts, scripts, getIsSsr, appDir, nonce } = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext); // if a nonce is explicitly passed to the script tag, favor that over the automatic handling nonce = restProps.nonce || nonce; /** * - First mount: * 1. The useEffect for onReady executes * 2. hasOnReadyEffectCalled.current is false, but the script hasn't loaded yet (not in LoadCache) * onReady is skipped, set hasOnReadyEffectCalled.current to true * 3. The useEffect for loadScript executes * 4. hasLoadScriptEffectCalled.current is false, loadScript executes * Once the script is loaded, the onLoad and onReady will be called by then * [If strict mode is enabled / is wrapped in <OffScreen /> component] * 5. The useEffect for onReady executes again * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped * 7. The useEffect for loadScript executes again * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped * * - Second mount: * 1. The useEffect for onReady executes * 2. hasOnReadyEffectCalled.current is false, but the script has already loaded (found in LoadCache) * onReady is called, set hasOnReadyEffectCalled.current to true * 3. The useEffect for loadScript executes * 4. The script is already loaded, loadScript bails out * [If strict mode is enabled / is wrapped in <OffScreen /> component] * 5. The useEffect for onReady executes again * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped * 7. The useEffect for loadScript executes again * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped */ const hasOnReadyEffectCalled = (0, _react.useRef)(false); (0, _react.useEffect)(()=>{ const cacheKey = id || src; if (!hasOnReadyEffectCalled.current) { // Run onReady if script has loaded before but component is re-mounted if (onReady && cacheKey && LoadCache.has(cacheKey)) { onReady(); } hasOnReadyEffectCalled.current = true; } }, [ onReady, id, src ]); const hasLoadScriptEffectCalled = (0, _react.useRef)(false); (0, _react.useEffect)(()=>{ if (!hasLoadScriptEffectCalled.current) { if (strategy === 'afterInteractive') { loadScript(props); } else if (strategy === 'lazyOnload') { loadLazyScript(props); } hasLoadScriptEffectCalled.current = true; } }, [ props, strategy ]); if (strategy === 'beforeInteractive' || strategy === 'worker') { if (updateScripts) { scripts[strategy] = (scripts[strategy] || []).concat([ { id, src, onLoad, onReady, onError, ...restProps, nonce } ]); updateScripts(scripts); } else if (getIsSsr && getIsSsr()) { // Script has already loaded during SSR LoadCache.add(id || src); } else if (getIsSsr && !getIsSsr()) { loadScript({ ...props, nonce }); } } // For the app directory, we need React Float to preload these scripts. if (appDir) { // Injecting stylesheets here handles beforeInteractive and worker scripts correctly // For other strategies injecting here ensures correct stylesheet order // ReactDOM.preinit handles loading the styles in the correct order, // also ensures the stylesheet is loaded only once and in a consistent manner // // Case 1: Styles for beforeInteractive/worker with appDir - handled here // Case 2: Styles for beforeInteractive/worker with pages dir - Not handled yet // Case 3: Styles for afterInteractive/lazyOnload with appDir - handled here // Case 4: Styles for afterInteractive/lazyOnload with pages dir - handled in insertStylesheets function if (stylesheets) { stylesheets.forEach((styleSrc)=>{ _reactdom.default.preinit(styleSrc, { as: 'style' }); }); } // Before interactive scripts need to be loaded by Next.js' runtime instead // of native <script> tags, because they no longer have `defer`. if (strategy === 'beforeInteractive') { if (!src) { // For inlined scripts, we put the content in `children`. if (restProps.dangerouslySetInnerHTML) { // Casting since lib.dom.d.ts doesn't have TrustedHTML yet. restProps.children = restProps.dangerouslySetInnerHTML.__html; delete restProps.dangerouslySetInnerHTML; } return /*#__PURE__*/ (0, _jsxruntime.jsx)("script", { nonce: nonce, dangerouslySetInnerHTML: { __html: `(self.__next_s=self.__next_s||[]).push(${JSON.stringify([ 0, { ...restProps, id } ])})` } }); } else { // @ts-ignore _reactdom.default.preload(src, restProps.integrity ? { as: 'script', integrity: restProps.integrity, nonce, crossOrigin: restProps.crossOrigin } : { as: 'script', nonce, crossOrigin: restProps.crossOrigin }); return /*#__PURE__*/ (0, _jsxruntime.jsx)("script", { nonce: nonce, dangerouslySetInnerHTML: { __html: `(self.__next_s=self.__next_s||[]).push(${JSON.stringify([ src, { ...restProps, id } ])})` } }); } } else if (strategy === 'afterInteractive') { if (src) { // @ts-ignore _reactdom.default.preload(src, restProps.integrity ? { as: 'script', integrity: restProps.integrity, nonce, crossOrigin: restProps.crossOrigin } : { as: 'script', nonce, crossOrigin: restProps.crossOrigin }); } } } return null; } Object.defineProperty(Script, '__nextScript', { value: true }); const _default = Script; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=script.js.map }), "[project]/node_modules/next/dist/client/detect-domain-locale.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "detectDomainLocale", { enumerable: true, get: function() { return detectDomainLocale; } }); const detectDomainLocale = (...args)=>{ if ("TURBOPACK compile-time truthy", 1) { return __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js [client] (ecmascript)").detectDomainLocale(...args); } }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=detect-domain-locale.js.map }), "[project]/node_modules/next/dist/client/remove-locale.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "removeLocale", { enumerable: true, get: function() { return removeLocale; } }); const _parsepath = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/parse-path.js [client] (ecmascript)"); function removeLocale(path, locale) { if ("TURBOPACK compile-time truthy", 1) { const { pathname } = (0, _parsepath.parsePath)(path); const pathLower = pathname.toLowerCase(); const localeLower = locale?.toLowerCase(); return locale && (pathLower.startsWith(`/${localeLower}/`) || pathLower === `/${localeLower}`) ? `${pathname.length === locale.length + 1 ? `/` : ``}${path.slice(locale.length + 1)}` : path; } //TURBOPACK unreachable ; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=remove-locale.js.map }), "[project]/node_modules/next/dist/client/has-base-path.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "hasBasePath", { enumerable: true, get: function() { return hasBasePath; } }); const _pathhasprefix = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js [client] (ecmascript)"); const basePath = ("TURBOPACK compile-time value", "") || ''; function hasBasePath(path) { return (0, _pathhasprefix.pathHasPrefix)(path, basePath); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=has-base-path.js.map }), "[project]/node_modules/next/dist/client/remove-base-path.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "removeBasePath", { enumerable: true, get: function() { return removeBasePath; } }); const _hasbasepath = __turbopack_context__.r("[project]/node_modules/next/dist/client/has-base-path.js [client] (ecmascript)"); const basePath = ("TURBOPACK compile-time value", "") || ''; function removeBasePath(path) { if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; // Can't trim the basePath if it has zero length! if (basePath.length === 0) return path; path = path.slice(basePath.length); if (!path.startsWith('/')) path = `/${path}`; return path; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=remove-base-path.js.map }), "[project]/node_modules/next/dist/client/resolve-href.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "resolveHref", { enumerable: true, get: function() { return resolveHref; } }); const _querystring = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/querystring.js [client] (ecmascript)"); const _formaturl = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/format-url.js [client] (ecmascript)"); const _omit = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/omit.js [client] (ecmascript)"); const _utils = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils.js [client] (ecmascript)"); const _normalizetrailingslash = __turbopack_context__.r("[project]/node_modules/next/dist/client/normalize-trailing-slash.js [client] (ecmascript)"); const _islocalurl = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/is-local-url.js [client] (ecmascript)"); const _utils1 = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/index.js [client] (ecmascript)"); const _interpolateas = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/interpolate-as.js [client] (ecmascript)"); const _routeregex = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/route-regex.js [client] (ecmascript)"); const _routematcher = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/route-matcher.js [client] (ecmascript)"); function resolveHref(router, href, resolveAs) { // we use a dummy base url for relative urls let base; let urlAsString = typeof href === 'string' ? href : (0, _formaturl.formatWithValidation)(href); // repeated slashes and backslashes in the URL are considered // invalid and will never match a Next.js page/file // https://www.rfc-editor.org/rfc/rfc3986.html#section-3.1 const urlProtoMatch = urlAsString.match(/^[a-z][a-z0-9+.-]*:\/\//i); const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString; const urlParts = urlAsStringNoProto.split('?', 1); if ((urlParts[0] || '').match(/(\/\/|\\)/)) { console.error(`Invalid href '${urlAsString}' passed to next/router in page: '${router.pathname}'. Repeated forward-slashes (//) or backslashes \\ are not valid in the href.`); const normalizedUrl = (0, _utils.normalizeRepeatedSlashes)(urlAsStringNoProto); urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl; } // Return because it cannot be routed by the Next.js router if (!(0, _islocalurl.isLocalURL)(urlAsString)) { return resolveAs ? [ urlAsString ] : urlAsString; } try { let baseBase = urlAsString.startsWith('#') ? router.asPath : router.pathname; // If the provided href is only a query string, it is safer to use the asPath // considering rewrites. if (urlAsString.startsWith('?')) { baseBase = router.asPath; // However, if is a dynamic route, we need to use the pathname to preserve the // query interpolation and rewrites (router.pathname will look like "/[slug]"). if ((0, _utils1.isDynamicRoute)(router.pathname)) { baseBase = router.pathname; const routeRegex = (0, _routeregex.getRouteRegex)(router.pathname); const match = (0, _routematcher.getRouteMatcher)(routeRegex)(router.asPath); // For dynamic routes, if asPath doesn't match the pathname regex, it is a rewritten path. // In this case, should use asPath to preserve the current URL. if (!match) { baseBase = router.asPath; } // Note: There is an edge case where the pathname is dynamic, and also a rewrite path to the same segment. // E.g. in "/[slug]" path, rewrite "/foo" -> "/bar" // In this case, it will be treated as a non-rewritten path and possibly interpolate the query string. // E.g., "/any?slug=foo" will become the content of "/foo", not rewritten as "/bar" // This is currently a trade-off of not resolving rewrite paths on every Router/Link call, // but using a lighter route regex pattern check. } } base = new URL(baseBase, 'http://n'); } catch (_) { // fallback to / for invalid asPath values e.g. // base = new URL('/', 'http://n'); } try { const finalUrl = new URL(urlAsString, base); finalUrl.pathname = (0, _normalizetrailingslash.normalizePathTrailingSlash)(finalUrl.pathname); let interpolatedAs = ''; if ((0, _utils1.isDynamicRoute)(finalUrl.pathname) && finalUrl.searchParams && resolveAs) { const query = (0, _querystring.searchParamsToUrlQuery)(finalUrl.searchParams); const { result, params } = (0, _interpolateas.interpolateAs)(finalUrl.pathname, finalUrl.pathname, query); if (result) { interpolatedAs = (0, _formaturl.formatWithValidation)({ pathname: result, hash: finalUrl.hash, query: (0, _omit.omit)(query, params) }); } } // if the origin didn't change, it means we received a relative href const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href; return resolveAs ? [ resolvedHref, interpolatedAs || resolvedHref ] : resolvedHref; } catch (_) { return resolveAs ? [ urlAsString ] : urlAsString; } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=resolve-href.js.map }), "[project]/node_modules/next/dist/client/with-router.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return withRouter; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _jsxruntime = __turbopack_context__.r("[project]/node_modules/react/jsx-runtime.js [client] (ecmascript)"); const _react = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)")); const _router = __turbopack_context__.r("[project]/node_modules/next/dist/client/router.js [client] (ecmascript)"); function withRouter(ComposedComponent) { function WithRouterWrapper(props) { return /*#__PURE__*/ (0, _jsxruntime.jsx)(ComposedComponent, { router: (0, _router.useRouter)(), ...props }); } WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps; WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps; if ("TURBOPACK compile-time truthy", 1) { const name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown'; WithRouterWrapper.displayName = `withRouter(${name})`; } return WithRouterWrapper; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=with-router.js.map }), "[project]/node_modules/next/dist/client/router.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; /* global window */ Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { Router: null, createRouter: null, default: null, makePublicRouterInstance: null, useRouter: null, withRouter: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { Router: function() { return _router.default; }, createRouter: function() { return createRouter; }, // Export the singletonRouter and this is the public API. default: function() { return _default; }, makePublicRouterInstance: function() { return makePublicRouterInstance; }, useRouter: function() { return useRouter; }, withRouter: function() { return _withrouter.default; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _react = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)")); const _router = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/router.js [client] (ecmascript)")); const _routercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router-context.shared-runtime.js [client] (ecmascript)"); const _iserror = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/lib/is-error.js [client] (ecmascript)")); const _withrouter = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/client/with-router.js [client] (ecmascript)")); const singletonRouter = { router: null, readyCallbacks: [], ready (callback) { if (this.router) return callback(); if (typeof window !== 'undefined') { this.readyCallbacks.push(callback); } } }; // Create public properties and methods of the router in the singletonRouter const urlPropertyFields = [ 'pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath', 'locale', 'locales', 'defaultLocale', 'isReady', 'isPreview', 'isLocaleDomain', 'domainLocales' ]; const routerEvents = [ 'routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete' ]; const coreMethodFields = [ 'push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState' ]; // Events is a static property on the router, the router doesn't have to be initialized to use it Object.defineProperty(singletonRouter, 'events', { get () { return _router.default.events; } }); function getRouter() { if (!singletonRouter.router) { const message = 'No router instance found.\n' + 'You should only use "next/router" on the client side of your app.\n'; throw Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { value: "E394", enumerable: false, configurable: true }); } return singletonRouter.router; } urlPropertyFields.forEach((field)=>{ // Here we need to use Object.defineProperty because we need to return // the property assigned to the actual router // The value might get changed as we change routes and this is the // proper way to access it Object.defineProperty(singletonRouter, field, { get () { const router = getRouter(); return router[field]; } }); }); coreMethodFields.forEach((field)=>{ // We don't really know the types here, so we add them later instead ; singletonRouter[field] = (...args)=>{ const router = getRouter(); return router[field](...args); }; }); routerEvents.forEach((event)=>{ singletonRouter.ready(()=>{ _router.default.events.on(event, (...args)=>{ const eventField = `on${event.charAt(0).toUpperCase()}${event.substring(1)}`; const _singletonRouter = singletonRouter; if (_singletonRouter[eventField]) { try { _singletonRouter[eventField](...args); } catch (err) { console.error(`Error when running the Router event: ${eventField}`); console.error((0, _iserror.default)(err) ? `${err.message}\n${err.stack}` : err + ''); } } }); }); }); const _default = singletonRouter; function useRouter() { const router = _react.default.useContext(_routercontextsharedruntime.RouterContext); if (!router) { throw Object.defineProperty(new Error('NextRouter was not mounted. https://nextjs.org/docs/messages/next-router-not-mounted'), "__NEXT_ERROR_CODE", { value: "E509", enumerable: false, configurable: true }); } return router; } function createRouter(...args) { singletonRouter.router = new _router.default(...args); singletonRouter.readyCallbacks.forEach((cb)=>cb()); singletonRouter.readyCallbacks = []; return singletonRouter.router; } function makePublicRouterInstance(router) { const scopedRouter = router; const instance = {}; for (const property of urlPropertyFields){ if (typeof scopedRouter[property] === 'object') { instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful ; continue; } instance[property] = scopedRouter[property]; } // Events is a static property on the router, the router doesn't have to be initialized to use it instance.events = _router.default.events; coreMethodFields.forEach((field)=>{ instance[field] = (...args)=>{ return scopedRouter[field](...args); }; }); return instance; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=router.js.map }), "[project]/node_modules/next/dist/client/route-announcer.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { RouteAnnouncer: null, default: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { RouteAnnouncer: function() { return RouteAnnouncer; }, default: function() { return _default; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _jsxruntime = __turbopack_context__.r("[project]/node_modules/react/jsx-runtime.js [client] (ecmascript)"); const _react = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)")); const _router = __turbopack_context__.r("[project]/node_modules/next/dist/client/router.js [client] (ecmascript)"); const nextjsRouteAnnouncerStyles = { border: 0, clip: 'rect(0 0 0 0)', height: '1px', margin: '-1px', overflow: 'hidden', padding: 0, position: 'absolute', top: 0, width: '1px', // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe whiteSpace: 'nowrap', wordWrap: 'normal' }; const RouteAnnouncer = ()=>{ const { asPath } = (0, _router.useRouter)(); const [routeAnnouncement, setRouteAnnouncement] = _react.default.useState(''); // Only announce the path change, but not for the first load because screen // reader will do that automatically. const previouslyLoadedPath = _react.default.useRef(asPath); // Every time the path changes, announce the new page’s title following this // priority: first the document title (from head), otherwise the first h1, or // if none of these exist, then the pathname from the URL. This methodology is // inspired by Marcy Sutton’s accessible client routing user testing. More // information can be found here: // https://www.gatsbyjs.com/blog/2019-07-11-user-testing-accessible-client-routing/ _react.default.useEffect({ "RouteAnnouncer.useEffect": ()=>{ // If the path hasn't change, we do nothing. if (previouslyLoadedPath.current === asPath) return; previouslyLoadedPath.current = asPath; if (document.title) { setRouteAnnouncement(document.title); } else { const pageHeader = document.querySelector('h1'); const content = pageHeader?.innerText ?? pageHeader?.textContent; setRouteAnnouncement(content || asPath); } } }["RouteAnnouncer.useEffect"], [ asPath ]); return /*#__PURE__*/ (0, _jsxruntime.jsx)("p", { "aria-live": "assertive" // Make the announcement immediately. , id: "__next-route-announcer__", role: "alert", style: nextjsRouteAnnouncerStyles, children: routeAnnouncement }); }; const _default = RouteAnnouncer; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=route-announcer.js.map }), "[project]/node_modules/next/dist/client/components/readonly-url-search-params.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; /** * ReadonlyURLSearchParams implementation shared between client and server. * This file is intentionally not marked as 'use client' or 'use server' * so it can be imported by both environments. */ /** @internal */ Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "ReadonlyURLSearchParams", { enumerable: true, get: function() { return ReadonlyURLSearchParams; } }); class ReadonlyURLSearchParamsError extends Error { constructor(){ super('Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams'); } } class ReadonlyURLSearchParams extends URLSearchParams { /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ append() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ delete() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ set() { throw new ReadonlyURLSearchParamsError(); } /** @deprecated Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams */ sort() { throw new ReadonlyURLSearchParamsError(); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=readonly-url-search-params.js.map }), "[project]/node_modules/next/dist/client/react-client-callbacks/report-global-error.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "reportGlobalError", { enumerable: true, get: function() { return reportGlobalError; } }); const reportGlobalError = typeof reportError === 'function' ? reportError : (error)=>{ // TODO: Dispatch error event globalThis.console.error(error); }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=report-global-error.js.map }), "[project]/node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); // This module can be shared between both pages router and app router "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { isRecoverableError: null, onRecoverableError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { isRecoverableError: function() { return isRecoverableError; }, onRecoverableError: function() { return onRecoverableError; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _bailouttocsr = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js [client] (ecmascript)"); const _iserror = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/lib/is-error.js [client] (ecmascript)")); const _reportglobalerror = __turbopack_context__.r("[project]/node_modules/next/dist/client/react-client-callbacks/report-global-error.js [client] (ecmascript)"); const recoverableErrors = new WeakSet(); function isRecoverableError(error) { return recoverableErrors.has(error); } const onRecoverableError = (error)=>{ // x-ref: https://github.com/facebook/react/pull/28736 let cause = (0, _iserror.default)(error) && 'cause' in error ? error.cause : error; // Skip certain custom errors which are not expected to be reported on client if ((0, _bailouttocsr.isBailoutToCSRError)(cause)) return; if ("TURBOPACK compile-time truthy", 1) { const { decorateDevError } = __turbopack_context__.r("[project]/node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js [client] (ecmascript)"); const causeError = decorateDevError(cause); recoverableErrors.add(causeError); cause = causeError; } (0, _reportglobalerror.reportGlobalError)(cause); }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=on-recoverable-error.js.map }), "[project]/node_modules/next/dist/client/tracing/tracer.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _mitt = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/mitt.js [client] (ecmascript)")); class Span { constructor(name, options, onSpanEnd){ this.name = name; this.attributes = options.attributes ?? {}; this.startTime = options.startTime ?? Date.now(); this.onSpanEnd = onSpanEnd; this.state = { state: 'inprogress' }; } end(endTime) { if (this.state.state === 'ended') { throw Object.defineProperty(new Error('Span has already ended'), "__NEXT_ERROR_CODE", { value: "E17", enumerable: false, configurable: true }); } this.state = { state: 'ended', endTime: endTime ?? Date.now() }; this.onSpanEnd(this); } } class Tracer { startSpan(name, options) { return new Span(name, options, this.handleSpanEnd); } onSpanEnd(cb) { this._emitter.on('spanend', cb); return ()=>{ this._emitter.off('spanend', cb); }; } constructor(){ this._emitter = (0, _mitt.default)(); this.handleSpanEnd = (span)=>{ this._emitter.emit('spanend', span); }; } } const _default = new Tracer(); if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=tracer.js.map }), "[project]/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { HTTPAccessErrorStatus: null, HTTP_ERROR_FALLBACK_ERROR_CODE: null, getAccessFallbackErrorTypeByStatus: null, getAccessFallbackHTTPStatus: null, isHTTPAccessFallbackError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { HTTPAccessErrorStatus: function() { return HTTPAccessErrorStatus; }, HTTP_ERROR_FALLBACK_ERROR_CODE: function() { return HTTP_ERROR_FALLBACK_ERROR_CODE; }, getAccessFallbackErrorTypeByStatus: function() { return getAccessFallbackErrorTypeByStatus; }, getAccessFallbackHTTPStatus: function() { return getAccessFallbackHTTPStatus; }, isHTTPAccessFallbackError: function() { return isHTTPAccessFallbackError; } }); const HTTPAccessErrorStatus = { NOT_FOUND: 404, FORBIDDEN: 403, UNAUTHORIZED: 401 }; const ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus)); const HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK'; function isHTTPAccessFallbackError(error) { if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') { return false; } const [prefix, httpStatus] = error.digest.split(';'); return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus)); } function getAccessFallbackHTTPStatus(error) { const httpStatus = error.digest.split(';')[1]; return Number(httpStatus); } function getAccessFallbackErrorTypeByStatus(status) { switch(status){ case 401: return 'unauthorized'; case 403: return 'forbidden'; case 404: return 'not-found'; default: return; } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=http-access-fallback.js.map }), "[project]/node_modules/next/dist/client/components/redirect-status-code.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "RedirectStatusCode", { enumerable: true, get: function() { return RedirectStatusCode; } }); var RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) { RedirectStatusCode[RedirectStatusCode["SeeOther"] = 303] = "SeeOther"; RedirectStatusCode[RedirectStatusCode["TemporaryRedirect"] = 307] = "TemporaryRedirect"; RedirectStatusCode[RedirectStatusCode["PermanentRedirect"] = 308] = "PermanentRedirect"; return RedirectStatusCode; }({}); if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect-status-code.js.map }), "[project]/node_modules/next/dist/client/components/redirect-error.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { REDIRECT_ERROR_CODE: null, RedirectType: null, isRedirectError: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { REDIRECT_ERROR_CODE: function() { return REDIRECT_ERROR_CODE; }, RedirectType: function() { return RedirectType; }, isRedirectError: function() { return isRedirectError; } }); const _redirectstatuscode = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/redirect-status-code.js [client] (ecmascript)"); const REDIRECT_ERROR_CODE = 'NEXT_REDIRECT'; var RedirectType = /*#__PURE__*/ function(RedirectType) { RedirectType["push"] = "push"; RedirectType["replace"] = "replace"; return RedirectType; }({}); function isRedirectError(error) { if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') { return false; } const digest = error.digest.split(';'); const [errorCode, type] = digest; const destination = digest.slice(2, -2).join(';'); const status = digest.at(-2); const statusCode = Number(status); return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=redirect-error.js.map }), "[project]/node_modules/next/dist/client/components/is-next-router-error.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "isNextRouterError", { enumerable: true, get: function() { return isNextRouterError; } }); const _httpaccessfallback = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js [client] (ecmascript)"); const _redirecterror = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/redirect-error.js [client] (ecmascript)"); function isNextRouterError(error) { return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=is-next-router-error.js.map }), "[project]/node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "getSocketUrl", { enumerable: true, get: function() { return getSocketUrl; } }); const _normalizedassetprefix = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/normalized-asset-prefix.js [client] (ecmascript)"); function getSocketProtocol(assetPrefix) { let protocol = window.location.protocol; try { // assetPrefix is a url protocol = new URL(assetPrefix).protocol; } catch {} return protocol === 'http:' ? 'ws:' : 'wss:'; } function getSocketUrl(assetPrefix) { const prefix = (0, _normalizedassetprefix.normalizedAssetPrefix)(assetPrefix); const protocol = getSocketProtocol(assetPrefix || ''); if (URL.canParse(prefix)) { // since normalized asset prefix is ensured to be a URL format, // we can safely replace the protocol return prefix.replace(/^http/, 'ws'); } const { hostname, port } = window.location; return `${protocol}//${hostname}${port ? `:${port}` : ''}${prefix}`; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=get-socket-url.js.map }), "[project]/node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { addMessageListener: null, connectHMR: null, sendMessage: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { addMessageListener: function() { return addMessageListener; }, connectHMR: function() { return connectHMR; }, sendMessage: function() { return sendMessage; } }); const _forwardlogs = __turbopack_context__.r("[project]/node_modules/next/dist/next-devtools/userspace/app/forward-logs.js [client] (ecmascript)"); const _hotreloadertypes = __turbopack_context__.r("[project]/node_modules/next/dist/server/dev/hot-reloader-types.js [client] (ecmascript)"); const _getsocketurl = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/get-socket-url.js [client] (ecmascript)"); const _constants = __turbopack_context__.r("[project]/node_modules/next/dist/lib/constants.js [client] (ecmascript)"); let source; const messageCallbacks = []; function addMessageListener(callback) { messageCallbacks.push(callback); } function sendMessage(data) { if (!source || source.readyState !== source.OPEN) return; return source.send(data); } let reconnections = 0; let reloading = false; let serverSessionId = null; function connectHMR(options) { let timer; function init() { if (source) source.close(); function handleOnline() { _forwardlogs.logQueue.onSocketReady(source); reconnections = 0; window.console.log('[HMR] connected'); } function handleMessage(event) { // While the page is reloading, don't respond to any more messages. // On reconnect, the server may send an empty list of changes if it was restarted. if (reloading) { return; } const message = JSON.parse(event.data); if (message.type === _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED) { if (serverSessionId !== null && serverSessionId !== message.data.sessionId) { // Either the server's session id has changed and it's a new server, or // it's been too long since we disconnected and we should reload the page. // There could be 1) unhandled server errors and/or 2) stale content. // Perform a hard reload of the page. window.location.reload(); reloading = true; return; } serverSessionId = message.data.sessionId; } for (const messageCallback of messageCallbacks){ messageCallback(message); } } function handleDisconnect() { source.onerror = null; source.onclose = null; source.close(); reconnections++; // After 25 reconnects we'll want to reload the page as it indicates the dev server is no longer running. if (reconnections > _constants.WEB_SOCKET_MAX_RECONNECTIONS) { reloading = true; window.location.reload(); return; } clearTimeout(timer); // Try again after 5 seconds timer = setTimeout(init, reconnections > 5 ? 5000 : 1000); } const url = (0, _getsocketurl.getSocketUrl)(options.assetPrefix); source = new window.WebSocket(`${url}${options.path}`); source.onopen = handleOnline; source.onerror = handleDisconnect; source.onclose = handleDisconnect; source.onmessage = handleMessage; } init(); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=websocket.js.map }), "[project]/node_modules/next/dist/client/dev/hot-reloader/shared.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { REACT_REFRESH_FULL_RELOAD: null, REACT_REFRESH_FULL_RELOAD_FROM_ERROR: null, reportInvalidHmrMessage: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { REACT_REFRESH_FULL_RELOAD: function() { return REACT_REFRESH_FULL_RELOAD; }, REACT_REFRESH_FULL_RELOAD_FROM_ERROR: function() { return REACT_REFRESH_FULL_RELOAD_FROM_ERROR; }, reportInvalidHmrMessage: function() { return reportInvalidHmrMessage; } }); const REACT_REFRESH_FULL_RELOAD = '[Fast Refresh] performing full reload\n\n' + "Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\n" + 'You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\n' + 'Consider migrating the non-React component export to a separate file and importing it into both files.\n\n' + 'It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\n' + 'Fast Refresh requires at least one parent function component in your React tree.'; const REACT_REFRESH_FULL_RELOAD_FROM_ERROR = '[Fast Refresh] performing full reload because your application had an unrecoverable error'; function reportInvalidHmrMessage(message, err) { console.warn('[HMR] Invalid message: ' + JSON.stringify(message) + '\n' + (err instanceof Error && err?.stack || '')); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=shared.js.map }), "[project]/node_modules/next/dist/client/dev/runtime-error-handler.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "RuntimeErrorHandler", { enumerable: true, get: function() { return RuntimeErrorHandler; } }); const RuntimeErrorHandler = { hadRuntimeError: false }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=runtime-error-handler.js.map }), "[project]/node_modules/next/dist/client/dev/report-hmr-latency.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, /** * Logs information about a completed HMR to the console, the server (via a * `client-hmr-latency` event), and to `self.__NEXT_HMR_LATENCY_CB` (a debugging * hook). * * @param hasUpdate Set this to `false` to avoid reporting the HMR event via a * `client-hmr-latency` event or to `self.__NEXT_HMR_LATENCY_CB`. Used by * turbopack when we must report a message to the browser console (because we * already logged a "rebuilding" message), but it's not a real HMR, so we * don't want to impact our telemetry. */ "default", { enumerable: true, get: function() { return reportHmrLatency; } }); function reportHmrLatency(sendMessage, updatedModules, startMsSinceEpoch, endMsSinceEpoch, hasUpdate = true) { const latencyMs = endMsSinceEpoch - startMsSinceEpoch; console.log(`[Fast Refresh] done in ${latencyMs}ms`); if (!hasUpdate) { return; } sendMessage(JSON.stringify({ event: 'client-hmr-latency', id: window.__nextDevClientId, startTime: startMsSinceEpoch, endTime: endMsSinceEpoch, page: window.location.pathname, updatedModules, // Whether the page (tab) was hidden at the time the event occurred. // This can impact the accuracy of the event's timing. isPageHidden: document.visibilityState === 'hidden' })); if (self.__NEXT_HMR_LATENCY_CB) { self.__NEXT_HMR_LATENCY_CB(latencyMs); } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=report-hmr-latency.js.map }), "[project]/node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "TurbopackHmr", { enumerable: true, get: function() { return TurbopackHmr; } }); // How long to wait before reporting the HMR start, used to suppress irrelevant // `BUILDING` events. Does not impact reported latency. const TURBOPACK_HMR_START_DELAY_MS = 100; class TurbopackHmr { #updatedModules; #startMsSinceEpoch; #lastUpdateMsSinceEpoch; #deferredReportHmrStartId; #reportedHmrStart; constructor(){ this.#updatedModules = new Set(); this.#reportedHmrStart = false; } // HACK: Turbopack tends to generate a lot of irrelevant "BUILDING" actions, // as it reports *any* compilation, including fully no-op/cached compilations // and those unrelated to HMR. Fixing this would require significant // architectural changes. // // Work around this by deferring any "rebuilding" message by 100ms. If we get // a BUILT event within that threshold and nothing has changed, just suppress // the message entirely. #runDeferredReportHmrStart() { if (this.#deferredReportHmrStartId != null) { console.log('[Fast Refresh] rebuilding'); this.#reportedHmrStart = true; this.#cancelDeferredReportHmrStart(); } } #cancelDeferredReportHmrStart() { clearTimeout(this.#deferredReportHmrStartId); this.#deferredReportHmrStartId = undefined; } onBuilding() { this.#lastUpdateMsSinceEpoch = undefined; this.#cancelDeferredReportHmrStart(); this.#startMsSinceEpoch = Date.now(); // report the HMR start after a short delay this.#deferredReportHmrStartId = setTimeout(()=>this.#runDeferredReportHmrStart(), self.__NEXT_HMR_TURBOPACK_REPORT_NOISY_NOOP_EVENTS ? 0 : TURBOPACK_HMR_START_DELAY_MS); } /** Helper for other `onEvent` methods. */ #onUpdate() { this.#runDeferredReportHmrStart(); this.#lastUpdateMsSinceEpoch = Date.now(); } onTurbopackMessage(msg) { this.#onUpdate(); const updatedModules = extractModulesFromTurbopackMessage(msg.data); for (const module1 of updatedModules){ this.#updatedModules.add(module1); } } onServerComponentChanges() { this.#onUpdate(); } onReloadPage() { this.#onUpdate(); } onPageAddRemove() { this.#onUpdate(); } /** * @returns `null` if the caller should ignore the update entirely. Returns an * object with `hasUpdates: false` if the caller should report the end of * the HMR in the browser console, but the HMR was a no-op. */ onBuilt() { // Check that we got *any* `TurbopackMessage`, even if // `updatedModules` is empty (not everything gets recorded there). // // There's also a case where `onBuilt` gets called before `onBuilding`, // which can happen during initial page load. Ignore that too! const hasUpdates = this.#lastUpdateMsSinceEpoch != null && this.#startMsSinceEpoch != null; if (!hasUpdates && !this.#reportedHmrStart) { // suppress the update entirely this.#cancelDeferredReportHmrStart(); return null; } this.#runDeferredReportHmrStart(); const result = { hasUpdates, updatedModules: this.#updatedModules, startMsSinceEpoch: this.#startMsSinceEpoch, endMsSinceEpoch: this.#lastUpdateMsSinceEpoch ?? Date.now() }; this.#updatedModules = new Set(); this.#reportedHmrStart = false; return result; } } function extractModulesFromTurbopackMessage(data) { const updatedModules = new Set(); const updates = Array.isArray(data) ? data : [ data ]; for (const update of updates){ // TODO this won't capture changes to CSS since they don't result in a "merged" update if (update.type !== 'partial' || update.instruction.type !== 'ChunkListUpdate' || update.instruction.merged === undefined) { continue; } for (const mergedUpdate of update.instruction.merged){ for (const name of Object.keys(mergedUpdate.entries)){ const res = /(.*)\s+[([].*/.exec(name); if (res === null) { continue; } updatedModules.add(res[1]); } } } return updatedModules; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=turbopack-hot-reloader-common.js.map }), "[project]/node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); // TODO: Remove use of `any` type. /** * MIT License * * Copyright (c) 2013-present, Facebook, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /// <reference types="webpack/module.d.ts" /> // This file is a modified version of the Create React App HMR dev client that // can be found here: // https://github.com/facebook/create-react-app/blob/v3.4.1/packages/react-dev-utils/webpackHotDevClient.js /// <reference types="webpack/module.d.ts" /> "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { default: null, handleStaticIndicator: null, performFullReload: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { default: function() { return connect; }, handleStaticIndicator: function() { return handleStaticIndicator; }, performFullReload: function() { return performFullReload; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _nextdevtools = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/next-devtools/index.js (raw)"); const _pagesdevoverlaysetup = __turbopack_context__.r("[project]/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js [client] (ecmascript)"); const _stripansi = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/compiled/strip-ansi/index.js [client] (ecmascript)")); const _websocket = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js [client] (ecmascript)"); const _formatwebpackmessages = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/format-webpack-messages.js [client] (ecmascript)")); const _hotreloadertypes = __turbopack_context__.r("[project]/node_modules/next/dist/server/dev/hot-reloader-types.js [client] (ecmascript)"); const _shared = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/shared.js [client] (ecmascript)"); const _runtimeerrorhandler = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/runtime-error-handler.js [client] (ecmascript)"); const _reporthmrlatency = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/client/dev/report-hmr-latency.js [client] (ecmascript)")); const _turbopackhotreloadercommon = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/turbopack-hot-reloader-common.js [client] (ecmascript)"); window.__nextDevClientId = Math.round(Math.random() * 100 + Date.now()); let customHmrEventHandler; let turbopackMessageListeners = []; function connect() { (0, _pagesdevoverlaysetup.register)(); (0, _websocket.addMessageListener)((message)=>{ try { processMessage(message); } catch (err) { (0, _shared.reportInvalidHmrMessage)(message, err); } }); return { subscribeToHmrEvent (handler) { customHmrEventHandler = handler; }, onUnrecoverableError () { _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError = true; }, addTurbopackMessageListener (cb) { turbopackMessageListeners.push(cb); }, sendTurbopackMessage (msg) { (0, _websocket.sendMessage)(msg); }, handleUpdateError (err) { performFullReload(err); } }; } // Remember some state related to hot module replacement. var isFirstCompilation = true; var mostRecentCompilationHash = null; var hasCompileErrors = false; function clearOutdatedErrors() { // Clean up outdated compile errors, if any. if (typeof console !== 'undefined' && typeof console.clear === 'function') { if (hasCompileErrors) { console.clear(); } } } // Successful compilation. function handleSuccess() { clearOutdatedErrors(); hasCompileErrors = false; if ("TURBOPACK compile-time truthy", 1) { const hmrUpdate = turbopackHmr.onBuilt(); if (hmrUpdate != null) { (0, _reporthmrlatency.default)(_websocket.sendMessage, [ ...hmrUpdate.updatedModules ], hmrUpdate.startMsSinceEpoch, hmrUpdate.endMsSinceEpoch, hmrUpdate.hasUpdates); } _nextdevtools.dispatcher.onBuildOk(); } else //TURBOPACK unreachable ; isFirstCompilation = false; } // Compilation with warnings (e.g. ESLint). function handleWarnings(warnings) { clearOutdatedErrors(); const isHotUpdate = !isFirstCompilation; isFirstCompilation = false; hasCompileErrors = false; function printWarnings() { // Print warnings to the console. const formatted = (0, _formatwebpackmessages.default)({ warnings: warnings, errors: [] }); if (typeof console !== 'undefined' && typeof console.warn === 'function') { for(let i = 0; i < formatted.warnings?.length; i++){ if (i === 5) { console.warn('There were more warnings in other files.\n' + 'You can find a complete log in the terminal.'); break; } console.warn((0, _stripansi.default)(formatted.warnings[i])); } } } printWarnings(); // Attempt to apply hot updates or reload. if (isHotUpdate) { tryApplyUpdatesWebpack(); } } // Compilation with errors (e.g. syntax error or missing modules). function handleErrors(errors) { clearOutdatedErrors(); isFirstCompilation = false; hasCompileErrors = true; // "Massage" webpack messages. var formatted = (0, _formatwebpackmessages.default)({ errors: errors, warnings: [] }); // Only show the first error. _nextdevtools.dispatcher.onBuildError(formatted.errors[0]); // Also log them to the console. if (typeof console !== 'undefined' && typeof console.error === 'function') { for(var i = 0; i < formatted.errors.length; i++){ console.error((0, _stripansi.default)(formatted.errors[i])); } } // Do not attempt to reload now. // We will reload on next success instead. if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; } let webpackStartMsSinceEpoch = null; const turbopackHmr = ("TURBOPACK compile-time truthy", 1) ? new _turbopackhotreloadercommon.TurbopackHmr() : "TURBOPACK unreachable"; let isrManifest = {}; // There is a newer version of the code available. function handleAvailableHash(hash) { // Update last known compilation hash. mostRecentCompilationHash = hash; } function handleStaticIndicator() { if ("TURBOPACK compile-time truthy", 1) { const routeInfo = window.next.router.components[window.next.router.pathname]; const pageComponent = routeInfo?.Component; const appComponent = window.next.router.components['/_app']?.Component; const isDynamicPage = Boolean(pageComponent?.getInitialProps) || Boolean(routeInfo?.__N_SSP); const hasAppGetInitialProps = Boolean(appComponent?.getInitialProps) && appComponent?.getInitialProps !== appComponent?.origGetInitialProps; const isPageStatic = isrManifest[window.location.pathname] || !isDynamicPage && !hasAppGetInitialProps; _nextdevtools.dispatcher.onStaticIndicator(isPageStatic ? 'static' : 'dynamic'); } } /** Handles messages from the server for the Pages Router. */ function processMessage(message) { switch(message.type){ case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ISR_MANIFEST: { isrManifest = message.data; handleStaticIndicator(); break; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.BUILDING: { _nextdevtools.dispatcher.buildingIndicatorShow(); if ("TURBOPACK compile-time truthy", 1) { turbopackHmr.onBuilding(); } else //TURBOPACK unreachable ; break; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.BUILT: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SYNC: { _nextdevtools.dispatcher.buildingIndicatorHide(); if (message.hash) handleAvailableHash(message.hash); const { errors, warnings } = message; // Is undefined when it's a 'built' event if ('versionInfo' in message) _nextdevtools.dispatcher.onVersionInfo(message.versionInfo); if ('devIndicator' in message) _nextdevtools.dispatcher.onDevIndicator(message.devIndicator); if ('devToolsConfig' in message) _nextdevtools.dispatcher.onDevToolsConfig(message.devToolsConfig); const hasErrors = Boolean(errors && errors.length); if (hasErrors) { (0, _websocket.sendMessage)(JSON.stringify({ event: 'client-error', errorCount: errors.length, clientId: window.__nextDevClientId })); return handleErrors(errors); } // NOTE: Turbopack does not currently send warnings const hasWarnings = Boolean(warnings && warnings.length); if (hasWarnings) { (0, _websocket.sendMessage)(JSON.stringify({ event: 'client-warning', warningCount: warnings.length, clientId: window.__nextDevClientId })); return handleWarnings(warnings); } (0, _websocket.sendMessage)(JSON.stringify({ event: 'client-success', clientId: window.__nextDevClientId })); return handleSuccess(); } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES: { turbopackHmr?.onServerComponentChanges(); if (hasCompileErrors || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) { window.location.reload(); } return; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ERROR: { const { errorJSON } = message; if (errorJSON) { const errorObject = JSON.parse(errorJSON); const error = Object.defineProperty(new Error(errorObject.message), "__NEXT_ERROR_CODE", { value: "E394", enumerable: false, configurable: true }); error.stack = errorObject.stack; handleErrors([ error ]); } return; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED: { for (const listener of turbopackMessageListeners){ listener({ type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED, data: message.data }); } break; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE: { turbopackHmr.onTurbopackMessage(message); _nextdevtools.dispatcher.onBeforeRefresh(); for (const listener of turbopackMessageListeners){ listener({ type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE, data: message.data }); } if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) { console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR); performFullReload(null); } _nextdevtools.dispatcher.onRefresh(); break; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE: if (customHmrEventHandler) { customHmrEventHandler(message); } break; case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG: _nextdevtools.dispatcher.onDevToolsConfig(message.data); break; case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ERRORS_TO_SHOW_IN_BROWSER: break; case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CLIENT_CHANGES: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ONLY_CHANGES: break; case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_CURRENT_ERROR_STATE: { const errorState = (0, _nextdevtools.getSerializedOverlayState)(); const response = { event: _hotreloadertypes.HMR_MESSAGE_SENT_TO_SERVER.MCP_ERROR_STATE_RESPONSE, requestId: message.requestId, errorState, url: window.location.href }; (0, _websocket.sendMessage)(JSON.stringify(response)); break; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_PAGE_METADATA: { const segmentTrieData = (0, _nextdevtools.getSegmentTrieData)(); const response = { event: _hotreloadertypes.HMR_MESSAGE_SENT_TO_SERVER.MCP_PAGE_METADATA_RESPONSE, requestId: message.requestId, segmentTrieData, url: window.location.href }; (0, _websocket.sendMessage)(JSON.stringify(response)); return; } default: message; } } // Is there a newer version of this code available? function isUpdateAvailable() { /* globals __webpack_hash__ */ // __webpack_hash__ is the hash of the current compilation. // It's a global variable injected by Webpack. return mostRecentCompilationHash !== __webpack_hash__; } // Webpack disallows updates in other states. function canApplyUpdates() { return module.hot.status() === 'idle'; } function afterApplyUpdates(fn) { if (canApplyUpdates()) { fn(); } else { function handler(status) { if (status === 'idle') { module.hot.removeStatusHandler(handler); fn(); } } module.hot.addStatusHandler(handler); } } // Attempt to update code on the fly, fall back to a hard reload. function tryApplyUpdatesWebpack() { if (!module.hot) { // HotModuleReplacementPlugin is not in Webpack configuration. console.error('HotModuleReplacementPlugin is not in Webpack configuration.'); // window.location.reload(); return; } if (!isUpdateAvailable() || !canApplyUpdates()) { _nextdevtools.dispatcher.onBuildOk(); return; } function handleApplyUpdates(err, updatedModules) { if (err || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError || updatedModules == null) { if (err) { console.warn(_shared.REACT_REFRESH_FULL_RELOAD); } else if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) { console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR); } performFullReload(err); return; } _nextdevtools.dispatcher.onBuildOk(); if (isUpdateAvailable()) { // While we were updating, there was a new update! Do it again. tryApplyUpdatesWebpack(); return; } _nextdevtools.dispatcher.onRefresh(); (0, _reporthmrlatency.default)(_websocket.sendMessage, updatedModules, webpackStartMsSinceEpoch, Date.now()); if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; } // https://webpack.js.org/api/hot-module-replacement/#check module.hot.check(/* autoApply */ false).then((updatedModules)=>{ if (updatedModules == null) { return null; } // We should always handle an update, even if updatedModules is empty (but // non-null) for any reason. That's what webpack would normally do: // https://github.com/webpack/webpack/blob/3aa6b6bc3a64/lib/hmr/HotModuleReplacement.runtime.js#L296-L298 _nextdevtools.dispatcher.onBeforeRefresh(); // https://webpack.js.org/api/hot-module-replacement/#apply return module.hot.apply(); }).then((updatedModules)=>{ handleApplyUpdates(null, updatedModules); }, (err)=>{ handleApplyUpdates(err, null); }); } function performFullReload(err) { const stackTrace = err && (err.stack && err.stack.split('\n').slice(0, 5).join('\n') || err.message || err + ''); (0, _websocket.sendMessage)(JSON.stringify({ event: 'client-full-reload', stackTrace, hadRuntimeError: !!_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError, dependencyChain: err ? err.dependencyChain : undefined })); window.location.reload(); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=hot-reloader-pages.js.map }), "[project]/node_modules/next/dist/client/tracing/report-to-socket.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return reportToSocket; } }); const _websocket = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js [client] (ecmascript)"); function reportToSocket(span) { if (span.state.state !== 'ended') { throw Object.defineProperty(new Error('Expected span to be ended'), "__NEXT_ERROR_CODE", { value: "E302", enumerable: false, configurable: true }); } (0, _websocket.sendMessage)(JSON.stringify({ event: 'span-end', startTime: span.startTime, endTime: span.state.endTime, spanName: span.name, attributes: span.attributes })); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=report-to-socket.js.map }), "[project]/node_modules/next/dist/client/index.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); /* global location */ // imports polyfill from `@next/polyfill-module` after build. "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { emitter: null, hydrate: null, initialize: null, router: null, version: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { emitter: function() { return emitter; }, hydrate: function() { return hydrate; }, initialize: function() { return initialize; }, router: function() { return router; }, version: function() { return version; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _jsxruntime = __turbopack_context__.r("[project]/node_modules/react/jsx-runtime.js [client] (ecmascript)"); __turbopack_context__.r("[project]/node_modules/next/dist/build/polyfills/polyfill-module.js [client] (ecmascript)"); const _react = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)")); const _client = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/react-dom/client.js [client] (ecmascript)")); const _headmanagercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js [client] (ecmascript)"); const _mitt = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/mitt.js [client] (ecmascript)")); const _routercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router-context.shared-runtime.js [client] (ecmascript)"); const _disablesmoothscroll = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js [client] (ecmascript)"); const _isdynamic = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js [client] (ecmascript)"); const _querystring = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/querystring.js [client] (ecmascript)"); const _utils = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils.js [client] (ecmascript)"); const _portal = __turbopack_context__.r("[project]/node_modules/next/dist/client/portal/index.js [client] (ecmascript)"); const _headmanager = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/client/head-manager.js [client] (ecmascript)")); const _pageloader = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/client/page-loader.js [client] (ecmascript)")); const _routeannouncer = __turbopack_context__.r("[project]/node_modules/next/dist/client/route-announcer.js [client] (ecmascript)"); const _router = __turbopack_context__.r("[project]/node_modules/next/dist/client/router.js [client] (ecmascript)"); const _iserror = __turbopack_context__.r("[project]/node_modules/next/dist/lib/is-error.js [client] (ecmascript)"); const _imageconfigcontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js [client] (ecmascript)"); const _removebasepath = __turbopack_context__.r("[project]/node_modules/next/dist/client/remove-base-path.js [client] (ecmascript)"); const _hasbasepath = __turbopack_context__.r("[project]/node_modules/next/dist/client/has-base-path.js [client] (ecmascript)"); const _approutercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js [client] (ecmascript)"); const _adapters = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/adapters.js [client] (ecmascript)"); const _hooksclientcontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js [client] (ecmascript)"); const _onrecoverableerror = __turbopack_context__.r("[project]/node_modules/next/dist/client/react-client-callbacks/on-recoverable-error.js [client] (ecmascript)"); const _tracer = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/client/tracing/tracer.js [client] (ecmascript)")); const _isnextroutererror = __turbopack_context__.r("[project]/node_modules/next/dist/client/components/is-next-router-error.js [client] (ecmascript)"); const version = "16.1.0"; let router; const emitter = (0, _mitt.default)(); const looseToArray = (input)=>[].slice.call(input); let initialData; let defaultLocale = undefined; let asPath; let pageLoader; let appElement; let headManager; let initialMatchesMiddleware = false; let lastAppProps; let lastRenderReject; let devClient; let CachedApp, onPerfEntry; let CachedComponent; class Container extends _react.default.Component { componentDidCatch(componentErr, info) { this.props.fn(componentErr, info); } componentDidMount() { this.scrollToHash(); // We need to replace the router state if: // - the page was (auto) exported and has a query string or search (hash) // - it was auto exported and is a dynamic route (to provide params) // - if it is a client-side skeleton (fallback render) // - if middleware matches the current page (may have rewrite params) // - if rewrites in next.config.js match (may have rewrite params) if (router.isSsr && (initialData.isFallback || initialData.nextExport && ((0, _isdynamic.isDynamicRoute)(router.pathname) || location.search || ("TURBOPACK compile-time value", false) || initialMatchesMiddleware) || initialData.props && initialData.props.__N_SSG && (location.search || ("TURBOPACK compile-time value", false) || initialMatchesMiddleware))) { // update query on mount for exported pages router.replace(router.pathname + '?' + String((0, _querystring.assign)((0, _querystring.urlQueryToSearchParams)(router.query), new URLSearchParams(location.search))), asPath, { // @ts-ignore // WARNING: `_h` is an internal option for handing Next.js // client-side hydration. Your app should _never_ use this property. // It may change at any time without notice. _h: 1, // Fallback pages must trigger the data fetch, so the transition is // not shallow. // Other pages (strictly updating query) happens shallowly, as data // requirements would already be present. shallow: !initialData.isFallback && !initialMatchesMiddleware }).catch((err)=>{ if (!err.cancelled) throw err; }); } } componentDidUpdate() { this.scrollToHash(); } scrollToHash() { let { hash } = location; hash = hash && hash.substring(1); if (!hash) return; const el = document.getElementById(hash); if (!el) return; // If we call scrollIntoView() in here without a setTimeout // it won't scroll properly. setTimeout(()=>el.scrollIntoView(), 0); } render() { if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; else { const { PagesDevOverlayBridge } = __turbopack_context__.r("[project]/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js [client] (ecmascript)"); return /*#__PURE__*/ (0, _jsxruntime.jsx)(PagesDevOverlayBridge, { children: this.props.children }); } } } async function initialize(opts = {}) { // This makes sure this specific lines are removed in production if ("TURBOPACK compile-time truthy", 1) { _tracer.default.onSpanEnd(__turbopack_context__.r("[project]/node_modules/next/dist/client/tracing/report-to-socket.js [client] (ecmascript)").default); devClient = opts.devClient; } initialData = JSON.parse(document.getElementById('__NEXT_DATA__').textContent); window.__NEXT_DATA__ = initialData; defaultLocale = initialData.defaultLocale; const prefix = initialData.assetPrefix || ''; self.__next_set_public_path__(`${prefix}/_next/`); asPath = (0, _utils.getURL)(); // make sure not to attempt stripping basePath for 404s if ((0, _hasbasepath.hasBasePath)(asPath)) { asPath = (0, _removebasepath.removeBasePath)(asPath); } if ("TURBOPACK compile-time truthy", 1) { const { normalizeLocalePath } = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js [client] (ecmascript)"); const { detectDomainLocale } = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js [client] (ecmascript)"); const { parseRelativeUrl } = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js [client] (ecmascript)"); const { formatUrl } = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/format-url.js [client] (ecmascript)"); if (initialData.locales) { const parsedAs = parseRelativeUrl(asPath); const localePathResult = normalizeLocalePath(parsedAs.pathname, initialData.locales); if (localePathResult.detectedLocale) { parsedAs.pathname = localePathResult.pathname; asPath = formatUrl(parsedAs); } else { // derive the default locale if it wasn't detected in the asPath // since we don't prerender static pages with all possible default // locales defaultLocale = initialData.locale; } // attempt detecting default locale based on hostname const detectedDomain = detectDomainLocale(("TURBOPACK compile-time value", false), window.location.hostname); // TODO: investigate if defaultLocale needs to be populated after // hydration to prevent mismatched renders if (detectedDomain) { defaultLocale = detectedDomain.defaultLocale; } } } if (initialData.scriptLoader) { const { initScriptLoader } = __turbopack_context__.r("[project]/node_modules/next/dist/client/script.js [client] (ecmascript)"); initScriptLoader(initialData.scriptLoader); } pageLoader = new _pageloader.default(initialData.buildId, prefix); const register = ([r, f])=>pageLoader.routeLoader.onEntrypoint(r, f); if (window.__NEXT_P) { // Defer page registration for another tick. This will increase the overall // latency in hydrating the page, but reduce the total blocking time. window.__NEXT_P.map((p)=>setTimeout(()=>register(p), 0)); } window.__NEXT_P = []; window.__NEXT_P.push = register; headManager = (0, _headmanager.default)(); headManager.getIsSsr = ()=>{ return router.isSsr; }; appElement = document.getElementById('__next'); return { assetPrefix: prefix }; } function renderApp(App, appProps) { return /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { ...appProps }); } function AppContainer({ children }) { // Create a memoized value for next/navigation router context. const adaptedForAppRouter = _react.default.useMemo({ "AppContainer.useMemo[adaptedForAppRouter]": ()=>{ return (0, _adapters.adaptForAppRouterInstance)(router); } }["AppContainer.useMemo[adaptedForAppRouter]"], []); return /*#__PURE__*/ (0, _jsxruntime.jsx)(Container, { fn: (error)=>renderError({ App: CachedApp, err: error }).catch((err)=>console.error('Error rendering page: ', err)), children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.AppRouterContext.Provider, { value: adaptedForAppRouter, children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.SearchParamsContext.Provider, { value: (0, _adapters.adaptForSearchParams)(router), children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_adapters.PathnameContextProviderAdapter, { router: router, isAutoExport: self.__NEXT_DATA__.autoExport ?? false, children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathParamsContext.Provider, { value: (0, _adapters.adaptForPathParams)(router), children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_routercontextsharedruntime.RouterContext.Provider, { value: (0, _router.makePublicRouterInstance)(router), children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_headmanagercontextsharedruntime.HeadManagerContext.Provider, { value: headManager, children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_imageconfigcontextsharedruntime.ImageConfigContext.Provider, { value: ("TURBOPACK compile-time value", { "deviceSizes": ("TURBOPACK compile-time value", [ ("TURBOPACK compile-time value", 640), ("TURBOPACK compile-time value", 750), ("TURBOPACK compile-time value", 828), ("TURBOPACK compile-time value", 1080), ("TURBOPACK compile-time value", 1200), ("TURBOPACK compile-time value", 1920), ("TURBOPACK compile-time value", 2048), ("TURBOPACK compile-time value", 3840) ]), "imageSizes": ("TURBOPACK compile-time value", [ ("TURBOPACK compile-time value", 32), ("TURBOPACK compile-time value", 48), ("TURBOPACK compile-time value", 64), ("TURBOPACK compile-time value", 96), ("TURBOPACK compile-time value", 128), ("TURBOPACK compile-time value", 256), ("TURBOPACK compile-time value", 384) ]), "qualities": ("TURBOPACK compile-time value", [ ("TURBOPACK compile-time value", 75) ]), "path": ("TURBOPACK compile-time value", "/_next/image"), "loader": ("TURBOPACK compile-time value", "default"), "dangerouslyAllowSVG": ("TURBOPACK compile-time value", false), "unoptimized": ("TURBOPACK compile-time value", false), "domains": ("TURBOPACK compile-time value", []), "remotePatterns": ("TURBOPACK compile-time value", []), "localPatterns": ("TURBOPACK compile-time value", [ ("TURBOPACK compile-time value", { "pathname": ("TURBOPACK compile-time value", "**"), "search": ("TURBOPACK compile-time value", "") }) ]) }), children: children }) }) }) }) }) }) }) }); } const wrapApp = (App)=>(wrappedAppProps)=>{ const appProps = { ...wrappedAppProps, Component: CachedComponent, err: initialData.err, router }; return /*#__PURE__*/ (0, _jsxruntime.jsx)(AppContainer, { children: renderApp(App, appProps) }); }; // This method handles all runtime and debug errors. // 404 and 500 errors are special kind of errors // and they are still handle via the main render method. function renderError(renderErrorProps) { let { App, err } = renderErrorProps; // In development runtime errors are caught by our overlay // In production we catch runtime errors using componentDidCatch which will trigger renderError if ("TURBOPACK compile-time truthy", 1) { // A Next.js rendering runtime error is always unrecoverable // FIXME: let's make this recoverable (error in GIP client-transition) devClient.onUnrecoverableError(); // We need to render an empty <App> so that the `<ReactDevOverlay>` can // render itself. return doRender({ App: ()=>null, props: {}, Component: ()=>null, styleSheets: [] }); } //TURBOPACK unreachable ; } // Dummy component that we render as a child of Root so that we can // toggle the correct styles before the page is rendered. function Head({ callback }) { // We use `useLayoutEffect` to guarantee the callback is executed // as soon as React flushes the update. _react.default.useLayoutEffect({ "Head.useLayoutEffect": ()=>callback() }["Head.useLayoutEffect"], [ callback ]); return null; } const performanceMarks = { navigationStart: 'navigationStart', beforeRender: 'beforeRender', afterRender: 'afterRender', afterHydrate: 'afterHydrate', routeChange: 'routeChange' }; const performanceMeasures = { hydration: 'Next.js-hydration', beforeHydration: 'Next.js-before-hydration', routeChangeToRender: 'Next.js-route-change-to-render', render: 'Next.js-render' }; let reactRoot = null; // On initial render a hydrate should always happen let shouldHydrate = true; function clearMarks() { ; [ performanceMarks.beforeRender, performanceMarks.afterHydrate, performanceMarks.afterRender, performanceMarks.routeChange ].forEach((mark)=>performance.clearMarks(mark)); } function markHydrateComplete() { if (!_utils.ST) return; performance.mark(performanceMarks.afterHydrate) // mark end of hydration ; const hasBeforeRenderMark = performance.getEntriesByName(performanceMarks.beforeRender, 'mark').length; if (hasBeforeRenderMark) { const beforeHydrationMeasure = performance.measure(performanceMeasures.beforeHydration, performanceMarks.navigationStart, performanceMarks.beforeRender); const hydrationMeasure = performance.measure(performanceMeasures.hydration, performanceMarks.beforeRender, performanceMarks.afterHydrate); if (("TURBOPACK compile-time value", "development") === 'development' && // Old versions of Safari don't return `PerformanceMeasure`s from `performance.measure()` beforeHydrationMeasure && hydrationMeasure) { _tracer.default.startSpan('navigation-to-hydration', { startTime: performance.timeOrigin + beforeHydrationMeasure.startTime, attributes: { pathname: location.pathname, query: location.search } }).end(performance.timeOrigin + hydrationMeasure.startTime + hydrationMeasure.duration); } } if (onPerfEntry) { performance.getEntriesByName(performanceMeasures.hydration).forEach(onPerfEntry); } clearMarks(); } function markRenderComplete() { if (!_utils.ST) return; performance.mark(performanceMarks.afterRender) // mark end of render ; const navStartEntries = performance.getEntriesByName(performanceMarks.routeChange, 'mark'); if (!navStartEntries.length) return; const hasBeforeRenderMark = performance.getEntriesByName(performanceMarks.beforeRender, 'mark').length; if (hasBeforeRenderMark) { performance.measure(performanceMeasures.routeChangeToRender, navStartEntries[0].name, performanceMarks.beforeRender); performance.measure(performanceMeasures.render, performanceMarks.beforeRender, performanceMarks.afterRender); if (onPerfEntry) { performance.getEntriesByName(performanceMeasures.render).forEach(onPerfEntry); performance.getEntriesByName(performanceMeasures.routeChangeToRender).forEach(onPerfEntry); } } clearMarks(); [ performanceMeasures.routeChangeToRender, performanceMeasures.render ].forEach((measure)=>performance.clearMeasures(measure)); } function renderReactElement(domEl, fn) { // mark start of hydrate/render if (_utils.ST) { performance.mark(performanceMarks.beforeRender); } const reactEl = fn(shouldHydrate ? markHydrateComplete : markRenderComplete); if (!reactRoot) { // Unlike with createRoot, you don't need a separate root.render() call here reactRoot = _client.default.hydrateRoot(domEl, reactEl, { onRecoverableError: _onrecoverableerror.onRecoverableError }); // TODO: Remove shouldHydrate variable when React 18 is stable as it can depend on `reactRoot` existing shouldHydrate = false; } else { const startTransition = _react.default.startTransition; startTransition(()=>{ reactRoot.render(reactEl); }); } } function Root({ callbacks, children }) { // We use `useLayoutEffect` to guarantee the callbacks are executed // as soon as React flushes the update _react.default.useLayoutEffect({ "Root.useLayoutEffect": ()=>callbacks.forEach({ "Root.useLayoutEffect": (callback)=>callback() }["Root.useLayoutEffect"]) }["Root.useLayoutEffect"], [ callbacks ]); if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; return children; } function doRender(input) { let { App, Component, props, err } = input; let styleSheets = 'initial' in input ? undefined : input.styleSheets; Component = Component || lastAppProps.Component; props = props || lastAppProps.props; const appProps = { ...props, Component, err, router }; // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error. lastAppProps = appProps; let canceled = false; let resolvePromise; const renderPromise = new Promise((resolve, reject)=>{ if (lastRenderReject) { lastRenderReject(); } resolvePromise = ()=>{ lastRenderReject = null; resolve(); }; lastRenderReject = ()=>{ canceled = true; lastRenderReject = null; const error = Object.defineProperty(new Error('Cancel rendering route'), "__NEXT_ERROR_CODE", { value: "E503", enumerable: false, configurable: true }); error.cancelled = true; reject(error); }; }); // This function has a return type to ensure it doesn't start returning a // Promise. It should remain synchronous. function onStart() { if ("TURBOPACK compile-time truthy", 1) { return false; } //TURBOPACK unreachable ; const currentStyleTags = undefined; const currentHrefs = undefined; const noscript = undefined; const nonce = undefined; } function onHeadCommit() { if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; if (input.scroll) { const { x, y } = input.scroll; (0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{ window.scrollTo(x, y); }); } } function onRootCommit() { resolvePromise(); } onStart(); const elem = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { children: [ /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, { callback: onHeadCommit }), /*#__PURE__*/ (0, _jsxruntime.jsxs)(AppContainer, { children: [ renderApp(App, appProps), /*#__PURE__*/ (0, _jsxruntime.jsx)(_portal.Portal, { type: "next-route-announcer", children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_routeannouncer.RouteAnnouncer, {}) }) ] }) ] }); // We catch runtime errors using componentDidCatch which will trigger renderError renderReactElement(appElement, (callback)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(Root, { callbacks: [ callback, onRootCommit ], children: ("TURBOPACK compile-time falsy", 0) ? /*#__PURE__*/ "TURBOPACK unreachable" : elem })); return renderPromise; } async function render(renderingProps) { // if an error occurs in a server-side page (e.g. in getInitialProps), // skip re-rendering the error page client-side as data-fetching operations // will already have been done on the server and NEXT_DATA contains the correct // data for straight-forward hydration of the error page if (renderingProps.err && // renderingProps.Component might be undefined if there is a top/module-level error (typeof renderingProps.Component === 'undefined' || !renderingProps.isHydratePass)) { await renderError(renderingProps); return; } try { await doRender(renderingProps); } catch (err) { const renderErr = (0, _iserror.getProperError)(err); // bubble up cancelation errors if (renderErr.cancelled) { throw renderErr; } if ("TURBOPACK compile-time truthy", 1) { // Ensure this error is displayed in the overlay in development setTimeout(()=>{ throw renderErr; }); } await renderError({ ...renderingProps, err: renderErr }); } } async function hydrate(opts) { let initialErr = initialData.err; try { const appEntrypoint = await pageLoader.routeLoader.whenEntrypoint('/_app'); if ('error' in appEntrypoint) { throw appEntrypoint.error; } const { component: app, exports: mod } = appEntrypoint; CachedApp = app; if (mod && mod.reportWebVitals) { onPerfEntry = ({ id, name, startTime, value, duration, entryType, entries, attribution })=>{ // Combines timestamp with random number for unique ID const uniqueID = `${Date.now()}-${Math.floor(Math.random() * (9e12 - 1)) + 1e12}`; let perfStartEntry; if (entries && entries.length) { perfStartEntry = entries[0].startTime; } const webVitals = { id: id || uniqueID, name, startTime: startTime || perfStartEntry, value: value == null ? duration : value, label: entryType === 'mark' || entryType === 'measure' ? 'custom' : 'web-vital' }; if (attribution) { webVitals.attribution = attribution; } mod.reportWebVitals(webVitals); }; } const pageEntrypoint = // error, so we need to skip waiting for the entrypoint. ("TURBOPACK compile-time value", "development") === 'development' && initialData.err ? { error: initialData.err } : await pageLoader.routeLoader.whenEntrypoint(initialData.page); if ('error' in pageEntrypoint) { throw pageEntrypoint.error; } CachedComponent = pageEntrypoint.component; if ("TURBOPACK compile-time truthy", 1) { const { isValidElementType } = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/react-is/index.js [client] (ecmascript)"); if (!isValidElementType(CachedComponent)) { throw Object.defineProperty(new Error(`The default export is not a React Component in page: "${initialData.page}"`), "__NEXT_ERROR_CODE", { value: "E286", enumerable: false, configurable: true }); } } } catch (error) { // This catches errors like throwing in the top level of a module initialErr = (0, _iserror.getProperError)(error); } if ("TURBOPACK compile-time truthy", 1) { const getServerError = __turbopack_context__.r("[project]/node_modules/next/dist/server/dev/node-stack-frames.js [client] (ecmascript)").getServerError; // Server-side runtime errors need to be re-thrown on the client-side so // that the overlay is rendered. if (initialErr) { if (initialErr === initialData.err) { setTimeout(()=>{ let error; try { // Generate a new error object. We `throw` it because some browsers // will set the `stack` when thrown, and we want to ensure ours is // not overridden when we re-throw it below. throw Object.defineProperty(new Error(initialErr.message), "__NEXT_ERROR_CODE", { value: "E394", enumerable: false, configurable: true }); } catch (e) { error = e; } error.name = initialErr.name; error.stack = initialErr.stack; const errSource = initialErr.source; // In development, error the navigation API usage in runtime, // since it's not allowed to be used in pages router as it doesn't contain error boundary like app router. if ((0, _isnextroutererror.isNextRouterError)(initialErr)) { error.message = 'Next.js navigation API is not allowed to be used in Pages Router.'; } throw getServerError(error, errSource); }); } else { setTimeout(()=>{ throw initialErr; }); } } } if (window.__NEXT_PRELOADREADY) { await window.__NEXT_PRELOADREADY(initialData.dynamicIds); } router = (0, _router.createRouter)(initialData.page, initialData.query, asPath, { initialProps: initialData.props, pageLoader, App: CachedApp, Component: CachedComponent, wrapApp, err: initialErr, isFallback: Boolean(initialData.isFallback), subscription: (info, App, scroll)=>render(Object.assign({}, info, { App, scroll })), locale: initialData.locale, locales: initialData.locales, defaultLocale, domainLocales: initialData.domainLocales, isPreview: initialData.isPreview }); initialMatchesMiddleware = await router._initialMatchesMiddlewarePromise; const renderCtx = { App: CachedApp, initial: true, Component: CachedComponent, props: initialData.props, err: initialErr, isHydratePass: true }; if (opts?.beforeRender) { await opts.beforeRender(); } render(renderCtx); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=index.js.map }), "[project]/node_modules/next/dist/client/dev/hot-middleware-client.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _hotreloadertypes = __turbopack_context__.r("[project]/node_modules/next/dist/server/dev/hot-reloader-types.js [client] (ecmascript)"); const _hotreloaderpages = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js [client] (ecmascript)")); const _websocket = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js [client] (ecmascript)"); let reloading = false; const _default = ()=>{ const devClient = (0, _hotreloaderpages.default)(); devClient.subscribeToHmrEvent((message)=>{ if (reloading) return; // Retrieve the router if it's available const router = window.next?.router; // Determine if we're on an error page or the router is not initialized const isOnErrorPage = !router || router.pathname === '/404' || router.pathname === '/_error'; switch(message.type){ case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE: { (0, _websocket.sendMessage)(JSON.stringify({ event: 'client-reload-page', clientId: window.__nextDevClientId })); reloading = true; return window.location.reload(); } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE: { const [page] = message.data; // Check if the removed page is the current page const isCurrentPage = page === router?.pathname; // We enter here if the removed page is currently being viewed // or if we happen to be on an error page. if (isCurrentPage || isOnErrorPage) { (0, _websocket.sendMessage)(JSON.stringify({ event: 'client-removed-page', clientId: window.__nextDevClientId, page })); return window.location.reload(); } return; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE: { const [page] = message.data; // Check if the added page is the current page const isCurrentPage = page === router?.pathname; // Check if the page component is not yet loaded const isPageNotLoaded = page !== null && typeof router?.components?.[page] === 'undefined'; // We enter this block if the newly added page is the one currently being viewed // but hasn't been loaded yet, or if we're on an error page. if (isCurrentPage && isPageNotLoaded || isOnErrorPage) { (0, _websocket.sendMessage)(JSON.stringify({ event: 'client-added-page', clientId: window.__nextDevClientId, page })); return window.location.reload(); } return; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE: { return; } default: { message; } } }); return devClient; }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=hot-middleware-client.js.map }), "[project]/node_modules/next/dist/client/dev/on-demand-entries-client.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _router = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/client/router.js [client] (ecmascript)")); const _websocket = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js [client] (ecmascript)"); const _default = async ()=>{ // Never send pings when using Turbopack as it's not used. // Pings were originally used to keep track of active routes in on-demand-entries with webpack. if ("TURBOPACK compile-time truthy", 1) { return; } //TURBOPACK unreachable ; }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=on-demand-entries-client.js.map }), "[project]/node_modules/next/dist/client/dev/fouc.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; // This wrapper function is used to safely select the best available function // to schedule removal of the no-FOUC styles workaround. requestAnimationFrame // is the ideal choice, but when used in iframes, there are no guarantees that // the callback will actually be called, which could stall the promise returned // from displayContent. // // See: https://www.vector-logic.com/blog/posts/on-request-animation-frame-and-embedded-iframes Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "displayContent", { enumerable: true, get: function() { return displayContent; } }); const safeCallbackQueue = (callback)=>{ if (window.requestAnimationFrame && window.self === window.top) { window.requestAnimationFrame(callback); } else { window.setTimeout(callback); } }; function displayContent() { return new Promise((resolve)=>{ safeCallbackQueue(function() { for(var x = document.querySelectorAll('[data-next-hide-fouc]'), i = x.length; i--;){ x[i].parentNode.removeChild(x[i]); } resolve(); }); }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=fouc.js.map }), "[project]/node_modules/next/dist/client/page-bootstrap.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "pageBootstrap", { enumerable: true, get: function() { return pageBootstrap; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); __turbopack_context__.r("[project]/node_modules/next/dist/lib/require-instrumentation-client.js [client] (ecmascript)"); const _ = __turbopack_context__.r("[project]/node_modules/next/dist/client/index.js [client] (ecmascript)"); const _ondemandentriesclient = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/client/dev/on-demand-entries-client.js [client] (ecmascript)")); const _fouc = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/fouc.js [client] (ecmascript)"); const _websocket = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/pages/websocket.js [client] (ecmascript)"); const _querystring = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/querystring.js [client] (ecmascript)"); const _hotreloadertypes = __turbopack_context__.r("[project]/node_modules/next/dist/server/dev/hot-reloader-types.js [client] (ecmascript)"); const _runtimeerrorhandler = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/runtime-error-handler.js [client] (ecmascript)"); const _shared = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/shared.js [client] (ecmascript)"); const _hotreloaderpages = __turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-reloader/pages/hot-reloader-pages.js [client] (ecmascript)"); const _nextdevtools = __turbopack_context__.r("[project]/node_modules/next/dist/compiled/next-devtools/index.js (raw)"); function pageBootstrap(assetPrefix) { (0, _websocket.connectHMR)({ assetPrefix, path: '/_next/webpack-hmr' }); return (0, _.hydrate)({ beforeRender: _fouc.displayContent }).then(()=>{ (0, _ondemandentriesclient.default)(); let reloading = false; (0, _websocket.addMessageListener)((message)=>{ if (reloading) return; switch(message.type){ case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ERROR: { const errorObject = JSON.parse(message.errorJSON); const error = Object.defineProperty(new Error(errorObject.message), "__NEXT_ERROR_CODE", { value: "E394", enumerable: false, configurable: true }); error.stack = errorObject.stack; throw error; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE: { reloading = true; window.location.reload(); break; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE: { fetch(`${assetPrefix}/_next/static/development/_devPagesManifest.json`).then((res)=>res.json()).then((manifest)=>{ window.__DEV_PAGES_MANIFEST = manifest; }).catch((err)=>{ console.log(`Failed to fetch devPagesManifest`, err); }); break; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES: { return window.location.reload(); } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CLIENT_CHANGES: { // This is used in `../server/dev/turbopack-utils.ts`. const isOnErrorPage = window.next.router.pathname === '/_error'; // On the error page we want to reload the page when a page was changed if (isOnErrorPage) { if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) { console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR); } reloading = true; (0, _hotreloaderpages.performFullReload)(null); } break; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ONLY_CHANGES: { if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) { console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR); (0, _hotreloaderpages.performFullReload)(null); } const { pages } = message; // Make sure to reload when the dev-overlay is showing for an // API route // TODO: Fix `__NEXT_PAGE` type if (pages.includes(_.router.query.__NEXT_PAGE)) { return window.location.reload(); } if (!_.router.clc && pages.includes(_.router.pathname)) { console.log('Refreshing page data due to server-side change'); _nextdevtools.dispatcher.buildingIndicatorShow(); const clearIndicator = _nextdevtools.dispatcher.buildingIndicatorHide; _.router.replace(_.router.pathname + '?' + String((0, _querystring.assign)((0, _querystring.urlQueryToSearchParams)(_.router.query), new URLSearchParams(location.search))), _.router.asPath, { scroll: false }).catch(()=>{ // trigger hard reload when failing to refresh data // to show error overlay properly location.reload(); }).finally(clearIndicator); } break; } case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SYNC: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.BUILT: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.BUILDING: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ISR_MANIFEST: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_CURRENT_ERROR_STATE: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_PAGE_METADATA: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR: case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ERRORS_TO_SHOW_IN_BROWSER: break; default: message; } }); }); } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=page-bootstrap.js.map }), "[project]/node_modules/next/dist/client/next-dev-turbopack.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; // TODO: Remove use of `any` type. Object.defineProperty(exports, "__esModule", { value: true }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _ = __turbopack_context__.r("[project]/node_modules/next/dist/client/index.js [client] (ecmascript)"); const _hotmiddlewareclient = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/client/dev/hot-middleware-client.js [client] (ecmascript)")); const _pagebootstrap = __turbopack_context__.r("[project]/node_modules/next/dist/client/page-bootstrap.js [client] (ecmascript)"); const _hmrclientts = __turbopack_context__.r("[turbopack]/browser/dev/hmr-client/hmr-client.ts [client] (ecmascript)"); window.next = { version: _.version, turbopack: true, // router is initialized later so it has to be live-binded get router () { return _.router; }, emitter: _.emitter }; self.__next_set_public_path__ = ()=>{}; self.__webpack_hash__ = ''; const devClient = (0, _hotmiddlewareclient.default)(); (0, _.initialize)({ devClient }).then(({ assetPrefix })=>{ // for the page loader ; self.__turbopack_load_page_chunks__ = (page, chunksData)=>{ const chunkPromises = chunksData.map((c)=>/*TURBOPACK member replacement*/ __turbopack_context__.l(c)); Promise.all(chunkPromises).catch((err)=>console.error('failed to load chunks for page ' + page, err)); }; (0, _hmrclientts.connect)({ addMessageListener (cb) { devClient.addTurbopackMessageListener(cb); }, sendMessage: devClient.sendTurbopackMessage, onUpdateError: devClient.handleUpdateError }); return (0, _pagebootstrap.pageBootstrap)(assetPrefix); }).catch((err)=>{ console.error('Error was not caught', err); }); if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=next-dev-turbopack.js.map }), "[project]/node_modules/next/dist/client/use-merged-ref.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "useMergedRef", { enumerable: true, get: function() { return useMergedRef; } }); const _react = __turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)"); function useMergedRef(refA, refB) { const cleanupA = (0, _react.useRef)(null); const cleanupB = (0, _react.useRef)(null); // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null. // (this happens often if the user doesn't pass a ref to Link/Form/Image) // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`), // and the user might pass that ref into ref-merging library that doesn't support cleanup refs // (because it hasn't been updated for React 19) // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`. // So in practice, it's safer to be defensive and always wrap the ref, even on React 19. return (0, _react.useCallback)((current)=>{ if (current === null) { const cleanupFnA = cleanupA.current; if (cleanupFnA) { cleanupA.current = null; cleanupFnA(); } const cleanupFnB = cleanupB.current; if (cleanupFnB) { cleanupB.current = null; cleanupFnB(); } } else { if (refA) { cleanupA.current = applyRef(refA, current); } if (refB) { cleanupB.current = applyRef(refB, current); } } }, [ refA, refB ]); } function applyRef(refA, current) { if (typeof refA === 'function') { const cleanup = refA(current); if (typeof cleanup === 'function') { return cleanup; } else { return ()=>refA(null); } } else { refA.current = current; return ()=>{ refA.current = null; }; } } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=use-merged-ref.js.map }), "[project]/node_modules/next/dist/client/image-component.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); 'use client'; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "Image", { enumerable: true, get: function() { return Image; } }); const _interop_require_default = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_default.cjs [client] (ecmascript)"); const _interop_require_wildcard = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs [client] (ecmascript)"); const _jsxruntime = __turbopack_context__.r("[project]/node_modules/react/jsx-runtime.js [client] (ecmascript)"); const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)")); const _reactdom = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/react-dom/index.js [client] (ecmascript)")); const _head = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/head.js [client] (ecmascript)")); const _getimgprops = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/get-img-props.js [client] (ecmascript)"); const _imageconfig = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/image-config.js [client] (ecmascript)"); const _imageconfigcontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js [client] (ecmascript)"); const _warnonce = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils/warn-once.js [client] (ecmascript)"); const _routercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router-context.shared-runtime.js [client] (ecmascript)"); const _imageloader = /*#__PURE__*/ _interop_require_default._(__turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/image-loader.js [client] (ecmascript)")); const _usemergedref = __turbopack_context__.r("[project]/node_modules/next/dist/client/use-merged-ref.js [client] (ecmascript)"); // This is replaced by webpack define plugin const configEnv = ("TURBOPACK compile-time value", { "deviceSizes": ("TURBOPACK compile-time value", [ ("TURBOPACK compile-time value", 640), ("TURBOPACK compile-time value", 750), ("TURBOPACK compile-time value", 828), ("TURBOPACK compile-time value", 1080), ("TURBOPACK compile-time value", 1200), ("TURBOPACK compile-time value", 1920), ("TURBOPACK compile-time value", 2048), ("TURBOPACK compile-time value", 3840) ]), "imageSizes": ("TURBOPACK compile-time value", [ ("TURBOPACK compile-time value", 32), ("TURBOPACK compile-time value", 48), ("TURBOPACK compile-time value", 64), ("TURBOPACK compile-time value", 96), ("TURBOPACK compile-time value", 128), ("TURBOPACK compile-time value", 256), ("TURBOPACK compile-time value", 384) ]), "qualities": ("TURBOPACK compile-time value", [ ("TURBOPACK compile-time value", 75) ]), "path": ("TURBOPACK compile-time value", "/_next/image"), "loader": ("TURBOPACK compile-time value", "default"), "dangerouslyAllowSVG": ("TURBOPACK compile-time value", false), "unoptimized": ("TURBOPACK compile-time value", false), "domains": ("TURBOPACK compile-time value", []), "remotePatterns": ("TURBOPACK compile-time value", []), "localPatterns": ("TURBOPACK compile-time value", [ ("TURBOPACK compile-time value", { "pathname": ("TURBOPACK compile-time value", "**"), "search": ("TURBOPACK compile-time value", "") }) ]) }); if (typeof window === 'undefined') { ; globalThis.__NEXT_IMAGE_IMPORTED = true; } // See https://stackoverflow.com/q/39777833/266535 for why we use this ref // handler instead of the img's onLoad attribute. function handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput) { const src = img?.src; if (!img || img['data-loaded-src'] === src) { return; } img['data-loaded-src'] = src; const p = 'decode' in img ? img.decode() : Promise.resolve(); p.catch(()=>{}).then(()=>{ if (!img.parentElement || !img.isConnected) { // Exit early in case of race condition: // - onload() is called // - decode() is called but incomplete // - unmount is called // - decode() completes return; } if (placeholder !== 'empty') { setBlurComplete(true); } if (onLoadRef?.current) { // Since we don't have the SyntheticEvent here, // we must create one with the same shape. // See https://reactjs.org/docs/events.html const event = new Event('load'); Object.defineProperty(event, 'target', { writable: false, value: img }); let prevented = false; let stopped = false; onLoadRef.current({ ...event, nativeEvent: event, currentTarget: img, target: img, isDefaultPrevented: ()=>prevented, isPropagationStopped: ()=>stopped, persist: ()=>{}, preventDefault: ()=>{ prevented = true; event.preventDefault(); }, stopPropagation: ()=>{ stopped = true; event.stopPropagation(); } }); } if (onLoadingCompleteRef?.current) { onLoadingCompleteRef.current(img); } if ("TURBOPACK compile-time truthy", 1) { const origSrc = new URL(src, 'http://n').searchParams.get('url') || src; if (img.getAttribute('data-nimg') === 'fill') { if (!unoptimized && (!sizesInput || sizesInput === '100vw')) { let widthViewportRatio = img.getBoundingClientRect().width / window.innerWidth; if (widthViewportRatio < 0.6) { if (sizesInput === '100vw') { (0, _warnonce.warnOnce)(`Image with src "${origSrc}" has "fill" prop and "sizes" prop of "100vw", but image is not rendered at full viewport width. Please adjust "sizes" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`); } else { (0, _warnonce.warnOnce)(`Image with src "${origSrc}" has "fill" but is missing "sizes" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes`); } } } if (img.parentElement) { const { position } = window.getComputedStyle(img.parentElement); const valid = [ 'absolute', 'fixed', 'relative' ]; if (!valid.includes(position)) { (0, _warnonce.warnOnce)(`Image with src "${origSrc}" has "fill" and parent element with invalid "position". Provided "${position}" should be one of ${valid.map(String).join(',')}.`); } } if (img.height === 0) { (0, _warnonce.warnOnce)(`Image with src "${origSrc}" has "fill" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.`); } } const heightModified = img.height.toString() !== img.getAttribute('height'); const widthModified = img.width.toString() !== img.getAttribute('width'); if (heightModified && !widthModified || !heightModified && widthModified) { (0, _warnonce.warnOnce)(`Image with src "${origSrc}" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: "auto"' or 'height: "auto"' to maintain the aspect ratio.`); } } }); } function getDynamicProps(fetchPriority) { if (Boolean(_react.use)) { // In React 19.0.0 or newer, we must use camelCase // prop to avoid "Warning: Invalid DOM property". // See https://github.com/facebook/react/pull/25927 return { fetchPriority }; } // In React 18.2.0 or older, we must use lowercase prop // to avoid "Warning: Invalid DOM property". return { fetchpriority: fetchPriority }; } const ImageElement = /*#__PURE__*/ (0, _react.forwardRef)(({ src, srcSet, sizes, height, width, decoding, className, style, fetchPriority, placeholder, loading, unoptimized, fill, onLoadRef, onLoadingCompleteRef, setBlurComplete, setShowAltText, sizesInput, onLoad, onError, ...rest }, forwardedRef)=>{ const ownRef = (0, _react.useCallback)((img)=>{ if (!img) { return; } if (onError) { // If the image has an error before react hydrates, then the error is lost. // The workaround is to wait until the image is mounted which is after hydration, // then we set the src again to trigger the error handler (if there was an error). // eslint-disable-next-line no-self-assign img.src = img.src; } if ("TURBOPACK compile-time truthy", 1) { if (!src) { console.error(`Image is missing required "src" property:`, img); } if (img.getAttribute('alt') === null) { console.error(`Image is missing required "alt" property. Please add Alternative Text to describe the image for screen readers and search engines.`); } } if (img.complete) { handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput); } }, [ src, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, onError, unoptimized, sizesInput ]); const ref = (0, _usemergedref.useMergedRef)(forwardedRef, ownRef); return /*#__PURE__*/ (0, _jsxruntime.jsx)("img", { ...rest, ...getDynamicProps(fetchPriority), // It's intended to keep `loading` before `src` because React updates // props in order which causes Safari/Firefox to not lazy load properly. // See https://github.com/facebook/react/issues/25883 loading: loading, width: width, height: height, decoding: decoding, "data-nimg": fill ? 'fill' : '1', className: className, style: style, // It's intended to keep `src` the last attribute because React updates // attributes in order. If we keep `src` the first one, Safari will // immediately start to fetch `src`, before `sizes` and `srcSet` are even // updated by React. That causes multiple unnecessary requests if `srcSet` // and `sizes` are defined. // This bug cannot be reproduced in Chrome or Firefox. sizes: sizes, srcSet: srcSet, src: src, ref: ref, onLoad: (event)=>{ const img = event.currentTarget; handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput); }, onError: (event)=>{ // if the real image fails to load, this will ensure "alt" is visible setShowAltText(true); if (placeholder !== 'empty') { // If the real image fails to load, this will still remove the placeholder. setBlurComplete(true); } if (onError) { onError(event); } } }); }); function ImagePreload({ isAppRouter, imgAttributes }) { const opts = { as: 'image', imageSrcSet: imgAttributes.srcSet, imageSizes: imgAttributes.sizes, crossOrigin: imgAttributes.crossOrigin, referrerPolicy: imgAttributes.referrerPolicy, ...getDynamicProps(imgAttributes.fetchPriority) }; if (isAppRouter && _reactdom.default.preload) { _reactdom.default.preload(imgAttributes.src, opts); return null; } return /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, { children: /*#__PURE__*/ (0, _jsxruntime.jsx)("link", { rel: "preload", // Note how we omit the `href` attribute, as it would only be relevant // for browsers that do not support `imagesrcset`, and in those cases // it would cause the incorrect image to be preloaded. // // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset href: imgAttributes.srcSet ? undefined : imgAttributes.src, ...opts }, '__nimg-' + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes) }); } const Image = /*#__PURE__*/ (0, _react.forwardRef)((props, forwardedRef)=>{ const pagesRouter = (0, _react.useContext)(_routercontextsharedruntime.RouterContext); // We're in the app directory if there is no pages router. const isAppRouter = !pagesRouter; const configContext = (0, _react.useContext)(_imageconfigcontextsharedruntime.ImageConfigContext); const config = (0, _react.useMemo)(()=>{ const c = configEnv || configContext || _imageconfig.imageConfigDefault; const allSizes = [ ...c.deviceSizes, ...c.imageSizes ].sort((a, b)=>a - b); const deviceSizes = c.deviceSizes.sort((a, b)=>a - b); const qualities = c.qualities?.sort((a, b)=>a - b); return { ...c, allSizes, deviceSizes, qualities, // During the SSR, configEnv (__NEXT_IMAGE_OPTS) does not include // security sensitive configs like `localPatterns`, which is needed // during the server render to ensure it's validated. Therefore use // configContext, which holds the config from the server for validation. localPatterns: typeof window === 'undefined' ? configContext?.localPatterns : c.localPatterns }; }, [ configContext ]); const { onLoad, onLoadingComplete } = props; const onLoadRef = (0, _react.useRef)(onLoad); (0, _react.useEffect)(()=>{ onLoadRef.current = onLoad; }, [ onLoad ]); const onLoadingCompleteRef = (0, _react.useRef)(onLoadingComplete); (0, _react.useEffect)(()=>{ onLoadingCompleteRef.current = onLoadingComplete; }, [ onLoadingComplete ]); const [blurComplete, setBlurComplete] = (0, _react.useState)(false); const [showAltText, setShowAltText] = (0, _react.useState)(false); const { props: imgAttributes, meta: imgMeta } = (0, _getimgprops.getImgProps)(props, { defaultLoader: _imageloader.default, imgConf: config, blurComplete, showAltText }); return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { children: [ /*#__PURE__*/ (0, _jsxruntime.jsx)(ImageElement, { ...imgAttributes, unoptimized: imgMeta.unoptimized, placeholder: imgMeta.placeholder, fill: imgMeta.fill, onLoadRef: onLoadRef, onLoadingCompleteRef: onLoadingCompleteRef, setBlurComplete: setBlurComplete, setShowAltText: setShowAltText, sizesInput: props.sizes, ref: forwardedRef }), imgMeta.preload ? /*#__PURE__*/ (0, _jsxruntime.jsx)(ImagePreload, { isAppRouter: isAppRouter, imgAttributes: imgAttributes }) : null ] }); }); if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=image-component.js.map }), "[project]/node_modules/next/dist/client/use-intersection.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "useIntersection", { enumerable: true, get: function() { return useIntersection; } }); const _react = __turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)"); const _requestidlecallback = __turbopack_context__.r("[project]/node_modules/next/dist/client/request-idle-callback.js [client] (ecmascript)"); const hasIntersectionObserver = typeof IntersectionObserver === 'function'; const observers = new Map(); const idList = []; function createObserver(options) { const id = { root: options.root || null, margin: options.rootMargin || '' }; const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin); let instance; if (existing) { instance = observers.get(existing); if (instance) { return instance; } } const elements = new Map(); const observer = new IntersectionObserver((entries)=>{ entries.forEach((entry)=>{ const callback = elements.get(entry.target); const isVisible = entry.isIntersecting || entry.intersectionRatio > 0; if (callback && isVisible) { callback(isVisible); } }); }, options); instance = { id, observer, elements }; idList.push(id); observers.set(id, instance); return instance; } function observe(element, callback, options) { const { id, observer, elements } = createObserver(options); elements.set(element, callback); observer.observe(element); return function unobserve() { elements.delete(element); observer.unobserve(element); // Destroy observer when there's nothing left to watch: if (elements.size === 0) { observer.disconnect(); observers.delete(id); const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin); if (index > -1) { idList.splice(index, 1); } } }; } function useIntersection({ rootRef, rootMargin, disabled }) { const isDisabled = disabled || !hasIntersectionObserver; const [visible, setVisible] = (0, _react.useState)(false); const elementRef = (0, _react.useRef)(null); const setElement = (0, _react.useCallback)((element)=>{ elementRef.current = element; }, []); (0, _react.useEffect)(()=>{ if (hasIntersectionObserver) { if (isDisabled || visible) return; const element = elementRef.current; if (element && element.tagName) { const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), { root: rootRef?.current, rootMargin }); return unobserve; } } else { if (!visible) { const idleCallback = (0, _requestidlecallback.requestIdleCallback)(()=>setVisible(true)); return ()=>(0, _requestidlecallback.cancelIdleCallback)(idleCallback); } } // eslint-disable-next-line react-hooks/exhaustive-deps }, [ isDisabled, rootMargin, rootRef, visible, elementRef.current ]); const resetVisible = (0, _react.useCallback)(()=>{ setVisible(false); }, []); return [ setElement, visible, resetVisible ]; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=use-intersection.js.map }), "[project]/node_modules/next/dist/client/normalize-locale-path.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "normalizeLocalePath", { enumerable: true, get: function() { return normalizeLocalePath; } }); const normalizeLocalePath = (pathname, locales)=>{ if ("TURBOPACK compile-time truthy", 1) { return __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js [client] (ecmascript)").normalizeLocalePath(pathname, locales); } //TURBOPACK unreachable ; }; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=normalize-locale-path.js.map }), "[project]/node_modules/next/dist/client/get-domain-locale.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "getDomainLocale", { enumerable: true, get: function() { return getDomainLocale; } }); const _normalizetrailingslash = __turbopack_context__.r("[project]/node_modules/next/dist/client/normalize-trailing-slash.js [client] (ecmascript)"); const basePath = ("TURBOPACK compile-time value", "") || ''; function getDomainLocale(path, locale, locales, domainLocales) { if ("TURBOPACK compile-time truthy", 1) { const normalizeLocalePath = __turbopack_context__.r("[project]/node_modules/next/dist/client/normalize-locale-path.js [client] (ecmascript)").normalizeLocalePath; const detectDomainLocale = __turbopack_context__.r("[project]/node_modules/next/dist/client/detect-domain-locale.js [client] (ecmascript)").detectDomainLocale; const target = locale || normalizeLocalePath(path, locales).detectedLocale; const domain = detectDomainLocale(domainLocales, undefined, target); if (domain) { const proto = `http${domain.http ? '' : 's'}://`; const finalLocale = target === domain.defaultLocale ? '' : `/${target}`; return `${proto}${domain.domain}${(0, _normalizetrailingslash.normalizePathTrailingSlash)(`${basePath}${finalLocale}${path}`)}`; } return false; } else //TURBOPACK unreachable ; } if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=get-domain-locale.js.map }), "[project]/node_modules/next/dist/client/link.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); 'use client'; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { default: null, useLinkStatus: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { default: function() { return _default; }, useLinkStatus: function() { return useLinkStatus; } }); const _interop_require_wildcard = __turbopack_context__.r("[project]/node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs [client] (ecmascript)"); const _jsxruntime = __turbopack_context__.r("[project]/node_modules/react/jsx-runtime.js [client] (ecmascript)"); const _react = /*#__PURE__*/ _interop_require_wildcard._(__turbopack_context__.r("[project]/node_modules/react/index.js [client] (ecmascript)")); const _resolvehref = __turbopack_context__.r("[project]/node_modules/next/dist/client/resolve-href.js [client] (ecmascript)"); const _islocalurl = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/is-local-url.js [client] (ecmascript)"); const _formaturl = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router/utils/format-url.js [client] (ecmascript)"); const _utils = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils.js [client] (ecmascript)"); const _addlocale = __turbopack_context__.r("[project]/node_modules/next/dist/client/add-locale.js [client] (ecmascript)"); const _routercontextsharedruntime = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/router-context.shared-runtime.js [client] (ecmascript)"); const _useintersection = __turbopack_context__.r("[project]/node_modules/next/dist/client/use-intersection.js [client] (ecmascript)"); const _getdomainlocale = __turbopack_context__.r("[project]/node_modules/next/dist/client/get-domain-locale.js [client] (ecmascript)"); const _addbasepath = __turbopack_context__.r("[project]/node_modules/next/dist/client/add-base-path.js [client] (ecmascript)"); const _usemergedref = __turbopack_context__.r("[project]/node_modules/next/dist/client/use-merged-ref.js [client] (ecmascript)"); const _erroronce = __turbopack_context__.r("[project]/node_modules/next/dist/shared/lib/utils/error-once.js [client] (ecmascript)"); const prefetched = new Set(); function prefetch(router, href, as, options) { if (typeof window === 'undefined') { return; } if (!(0, _islocalurl.isLocalURL)(href)) { return; } // We should only dedupe requests when experimental.optimisticClientCache is // disabled. if (!options.bypassPrefetchedCheck) { const locale = typeof options.locale !== 'undefined' ? options.locale : 'locale' in router ? router.locale : undefined; const prefetchedKey = href + '%' + as + '%' + locale; // If we've already fetched the key, then don't prefetch it again! if (prefetched.has(prefetchedKey)) { return; } // Mark this URL as prefetched. prefetched.add(prefetchedKey); } // Prefetch the JSON page if asked (only in the client) // We need to handle a prefetch error here since we may be // loading with priority which can reject but we don't // want to force navigation since this is only a prefetch router.prefetch(href, as, options).catch((err)=>{ if (("TURBOPACK compile-time value", "development") !== 'production') { // rethrow to show invalid URL errors throw err; } }); } function isModifiedEvent(event) { const eventTarget = event.currentTarget; const target = eventTarget.getAttribute('target'); return target && target !== '_self' || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download event.nativeEvent && event.nativeEvent.which === 2; } function linkClicked(e, router, href, as, replace, shallow, scroll, locale, onNavigate) { const { nodeName } = e.currentTarget; // anchors inside an svg have a lowercase nodeName const isAnchorNodeName = nodeName.toUpperCase() === 'A'; if (isAnchorNodeName && isModifiedEvent(e) || e.currentTarget.hasAttribute('download')) { // ignore click for browser’s default behavior return; } if (!(0, _islocalurl.isLocalURL)(href)) { if (replace) { // browser default behavior does not replace the history state // so we need to do it manually e.preventDefault(); location.replace(href); } // ignore click for browser’s default behavior return; } e.preventDefault(); const navigate = ()=>{ if (onNavigate) { let isDefaultPrevented = false; onNavigate({ preventDefault: ()=>{ isDefaultPrevented = true; } }); if (isDefaultPrevented) { return; } } // If the router is an NextRouter instance it will have `beforePopState` const routerScroll = scroll ?? true; if ('beforePopState' in router) { router[replace ? 'replace' : 'push'](href, as, { shallow, locale, scroll: routerScroll }); } else { router[replace ? 'replace' : 'push'](as || href, { scroll: routerScroll }); } }; navigate(); } function formatStringOrUrl(urlObjOrString) { if (typeof urlObjOrString === 'string') { return urlObjOrString; } return (0, _formaturl.formatUrl)(urlObjOrString); } /** * A React component that extends the HTML `<a>` element to provide [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching) * and client-side navigation between routes. * * It is the primary way to navigate between routes in Next.js. * * Read more: [Next.js docs: `<Link>`](https://nextjs.org/docs/app/api-reference/components/link) */ const Link = /*#__PURE__*/ _react.default.forwardRef(function LinkComponent(props, forwardedRef) { let children; const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, locale, onClick, onNavigate, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, ...restProps } = props; children = childrenProp; if (legacyBehavior && (typeof children === 'string' || typeof children === 'number')) { children = /*#__PURE__*/ (0, _jsxruntime.jsx)("a", { children: children }); } const router = _react.default.useContext(_routercontextsharedruntime.RouterContext); const prefetchEnabled = prefetchProp !== false; if ("TURBOPACK compile-time truthy", 1) { function createPropError(args) { return Object.defineProperty(new Error(`Failed prop type: The prop \`${args.key}\` expects a ${args.expected} in \`<Link>\`, but got \`${args.actual}\` instead.` + (typeof window !== 'undefined' ? "\nOpen your browser's console to view the Component stack trace." : '')), "__NEXT_ERROR_CODE", { value: "E319", enumerable: false, configurable: true }); } // TypeScript trick for type-guarding: const requiredPropsGuard = { href: true }; const requiredProps = Object.keys(requiredPropsGuard); requiredProps.forEach((key)=>{ if (key === 'href') { if (props[key] == null || typeof props[key] !== 'string' && typeof props[key] !== 'object') { throw createPropError({ key, expected: '`string` or `object`', actual: props[key] === null ? 'null' : typeof props[key] }); } } else { // TypeScript trick for type-guarding: const _ = key; } }); // TypeScript trick for type-guarding: const optionalPropsGuard = { as: true, replace: true, scroll: true, shallow: true, passHref: true, prefetch: true, locale: true, onClick: true, onMouseEnter: true, onTouchStart: true, legacyBehavior: true, onNavigate: true }; const optionalProps = Object.keys(optionalPropsGuard); optionalProps.forEach((key)=>{ const valType = typeof props[key]; if (key === 'as') { if (props[key] && valType !== 'string' && valType !== 'object') { throw createPropError({ key, expected: '`string` or `object`', actual: valType }); } } else if (key === 'locale') { if (props[key] && valType !== 'string') { throw createPropError({ key, expected: '`string`', actual: valType }); } } else if (key === 'onClick' || key === 'onMouseEnter' || key === 'onTouchStart' || key === 'onNavigate') { if (props[key] && valType !== 'function') { throw createPropError({ key, expected: '`function`', actual: valType }); } } else if (key === 'replace' || key === 'scroll' || key === 'shallow' || key === 'passHref' || key === 'legacyBehavior') { if (props[key] != null && valType !== 'boolean') { throw createPropError({ key, expected: '`boolean`', actual: valType }); } } else if (key === 'prefetch') { if (props[key] != null && valType !== 'boolean' && props[key] !== 'auto') { throw createPropError({ key, expected: '`boolean | "auto"`', actual: valType }); } } else { // TypeScript trick for type-guarding: const _ = key; } }); } const { href, as } = _react.default.useMemo({ "Link.LinkComponent.useMemo": ()=>{ if (!router) { const resolvedHref = formatStringOrUrl(hrefProp); return { href: resolvedHref, as: asProp ? formatStringOrUrl(asProp) : resolvedHref }; } const [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(router, hrefProp, true); return { href: resolvedHref, as: asProp ? (0, _resolvehref.resolveHref)(router, asProp) : resolvedAs || resolvedHref }; } }["Link.LinkComponent.useMemo"], [ router, hrefProp, asProp ]); const previousHref = _react.default.useRef(href); const previousAs = _react.default.useRef(as); // This will return the first child, if multiple are provided it will throw an error let child; if (legacyBehavior) { if ("TURBOPACK compile-time truthy", 1) { if (onClick) { console.warn(`"onClick" was passed to <Link> with \`href\` of \`${hrefProp}\` but "legacyBehavior" was set. The legacy behavior requires onClick be set on the child of next/link`); } if (onMouseEnterProp) { console.warn(`"onMouseEnter" was passed to <Link> with \`href\` of \`${hrefProp}\` but "legacyBehavior" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`); } try { child = _react.default.Children.only(children); } catch (err) { if (!children) { throw Object.defineProperty(new Error(`No children were passed to <Link> with \`href\` of \`${hrefProp}\` but one child is required https://nextjs.org/docs/messages/link-no-children`), "__NEXT_ERROR_CODE", { value: "E320", enumerable: false, configurable: true }); } throw Object.defineProperty(new Error(`Multiple children were passed to <Link> with \`href\` of \`${hrefProp}\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` + (typeof window !== 'undefined' ? " \nOpen your browser's console to view the Component stack trace." : '')), "__NEXT_ERROR_CODE", { value: "E266", enumerable: false, configurable: true }); } } else //TURBOPACK unreachable ; } else { if ("TURBOPACK compile-time truthy", 1) { if (children?.type === 'a') { throw Object.defineProperty(new Error('Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>.\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'), "__NEXT_ERROR_CODE", { value: "E209", enumerable: false, configurable: true }); } } } const childRef = legacyBehavior ? child && typeof child === 'object' && child.ref : forwardedRef; const [setIntersectionRef, isVisible, resetVisible] = (0, _useintersection.useIntersection)({ rootMargin: '200px' }); const setIntersectionWithResetRef = _react.default.useCallback({ "Link.LinkComponent.useCallback[setIntersectionWithResetRef]": (el)=>{ // Before the link getting observed, check if visible state need to be reset if (previousAs.current !== as || previousHref.current !== href) { resetVisible(); previousAs.current = as; previousHref.current = href; } setIntersectionRef(el); } }["Link.LinkComponent.useCallback[setIntersectionWithResetRef]"], [ as, href, resetVisible, setIntersectionRef ]); const setRef = (0, _usemergedref.useMergedRef)(setIntersectionWithResetRef, childRef); // Prefetch the URL if we haven't already and it's visible. _react.default.useEffect({ "Link.LinkComponent.useEffect": ()=>{ // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page. if ("TURBOPACK compile-time truthy", 1) { return; } //TURBOPACK unreachable ; } }["Link.LinkComponent.useEffect"], [ as, href, isVisible, locale, prefetchEnabled, router?.locale, router ]); const childProps = { ref: setRef, onClick (e) { if ("TURBOPACK compile-time truthy", 1) { if (!e) { throw Object.defineProperty(new Error(`Component rendered inside next/link has to pass click event to "onClick" prop.`), "__NEXT_ERROR_CODE", { value: "E312", enumerable: false, configurable: true }); } } if (!legacyBehavior && typeof onClick === 'function') { onClick(e); } if (legacyBehavior && child.props && typeof child.props.onClick === 'function') { child.props.onClick(e); } if (!router) { return; } if (e.defaultPrevented) { return; } linkClicked(e, router, href, as, replace, shallow, scroll, locale, onNavigate); }, onMouseEnter (e) { if (!legacyBehavior && typeof onMouseEnterProp === 'function') { onMouseEnterProp(e); } if (legacyBehavior && child.props && typeof child.props.onMouseEnter === 'function') { child.props.onMouseEnter(e); } if (!router) { return; } prefetch(router, href, as, { locale, priority: true, // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642} bypassPrefetchedCheck: true }); }, onTouchStart: ("TURBOPACK compile-time falsy", 0) ? "TURBOPACK unreachable" : function onTouchStart(e) { if (!legacyBehavior && typeof onTouchStartProp === 'function') { onTouchStartProp(e); } if (legacyBehavior && child.props && typeof child.props.onTouchStart === 'function') { child.props.onTouchStart(e); } if (!router) { return; } prefetch(router, href, as, { locale, priority: true, // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642} bypassPrefetchedCheck: true }); } }; // If the url is absolute, we can bypass the logic to prepend the domain and locale. if ((0, _utils.isAbsoluteUrl)(as)) { childProps.href = as; } else if (!legacyBehavior || passHref || child.type === 'a' && !('href' in child.props)) { const curLocale = typeof locale !== 'undefined' ? locale : router?.locale; // we only render domain locales if we are currently on a domain locale // so that locale links are still visitable in development/preview envs const localeDomain = router?.isLocaleDomain && (0, _getdomainlocale.getDomainLocale)(as, curLocale, router?.locales, router?.domainLocales); childProps.href = localeDomain || (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, curLocale, router?.defaultLocale)); } if (legacyBehavior) { if ("TURBOPACK compile-time truthy", 1) { (0, _erroronce.errorOnce)('`legacyBehavior` is deprecated and will be removed in a future ' + 'release. A codemod is available to upgrade your components:\n\n' + 'npx @next/codemod@latest new-link .\n\n' + 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components'); } return /*#__PURE__*/ _react.default.cloneElement(child, childProps); } return /*#__PURE__*/ (0, _jsxruntime.jsx)("a", { ...restProps, ...childProps, children: children }); }); const LinkStatusContext = /*#__PURE__*/ (0, _react.createContext)({ // We do not support link status in the Pages Router, so we always return false pending: false }); const useLinkStatus = ()=>{ // This behaviour is like React's useFormStatus. When the component is not under // a <form> tag, it will get the default value, instead of throwing an error. return (0, _react.useContext)(LinkStatusContext); }; const _default = Link; if ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=link.js.map }), ]); //# sourceMappingURL=node_modules_next_dist_client_4202d2da._.js.mapAttack https://localhost:4000/_next/static/chunks/node_modules_next_dist_client_4202d2da._.js/Evidence directorySolution Disable directory browsing. If this is required, make sure the listed files does not induce risks.
-
-
-
Risk=Laag, Confidence=Hoog (1)
-
https://localhost:4000 (1)
-
Strict-Transport-Security Header Not Set (1)
GET https://localhost:4000/_next/static/chunks/node_modules_react-dom_8a8085df._.js
Alert tags Alert description HTTP Strict Transport Security (HSTS) is a web security policy mechanism whereby a web server declares that complying user agents (such as a web browser) are to interact with it using only secure HTTPS connections (i.e. HTTP layered over TLS/SSL). HSTS is an IETF standards track protocol and is specified in RFC 6797.
Request Request line and header section (319 bytes)
GET https://localhost:4000/_next/static/chunks/node_modules_react-dom_8a8085df._.js HTTP/1.1 host: localhost:4000 user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 pragma: no-cache cache-control: no-cache referer: https://localhost:4000Request body (0 bytes)
Response Status line and header section (704 bytes)
HTTP/1.1 200 OK Content-Security-Policy: default-src 'self'; script-src 'self' https://localhost:3000; style-src 'self' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' https://localhost:3000; connect-src 'self' https://localhost:3000; frame-ancestors 'self'; form-action 'self'; X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Cache-Control: no-store, must-revalidate Accept-Ranges: bytes Last-Modified: Sun, 21 Dec 2025 14:56:10 GMT ETag: W/"bc9-19b41692c2b" Content-Type: application/javascript; charset=UTF-8 Content-Length: 3017 Vary: Accept-Encoding Date: Mon, 22 Dec 2025 19:29:13 GMT Connection: keep-alive Keep-Alive: timeout=5Response body (3017 bytes)
(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined, "[project]/node_modules/react-dom/index.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); 'use strict'; function checkDCE() { /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') { return; } if ("TURBOPACK compile-time truthy", 1) { // This branch is unreachable because this function is only called // in production, but the condition is true only in development. // Therefore if the branch is still here, dead code elimination wasn't // properly applied. // Don't change the message. React DevTools relies on it. Also make sure // this message doesn't occur elsewhere in this function, or it will cause // a false positive. throw new Error('^_^'); } try { // Verify that the code above has been dead code eliminated (DCE'd). __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE); } catch (err) { // DevTools shouldn't crash React, no matter what. // We should still report in case we break this code. console.error(err); } } if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; else { module.exports = __turbopack_context__.r("[project]/node_modules/react-dom/cjs/react-dom.development.js [client] (ecmascript)"); } }), "[project]/node_modules/react-dom/client.js [client] (ecmascript)", ((__turbopack_context__, module, exports) => { "use strict"; var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$next$2f$dist$2f$build$2f$polyfills$2f$process$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = /*#__PURE__*/ __turbopack_context__.i("[project]/node_modules/next/dist/build/polyfills/process.js [client] (ecmascript)"); 'use strict'; var m = __turbopack_context__.r("[project]/node_modules/react-dom/index.js [client] (ecmascript)"); if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable ; else { var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; exports.createRoot = function(c, o) { i.usingClientEntryPoint = true; try { return m.createRoot(c, o); } finally{ i.usingClientEntryPoint = false; } }; exports.hydrateRoot = function(c, h, o) { i.usingClientEntryPoint = true; try { return m.hydrateRoot(c, h, o); } finally{ i.usingClientEntryPoint = false; } }; } }), ]); //# sourceMappingURL=node_modules_react-dom_8a8085df._.js.mapSolution Ensure that your web server, application server, load balancer, etc. is configured to enforce Strict-Transport-Security.
-
-
-
Risk=Laag, Confidence=Gemiddeld (1)
-
https://firefox-settings-attachments.cdn.mozilla.net (1)
-
X-Content-Type-Options Header Missing (1)
GET https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/tracking-protection-lists/0a25e3cf-57e3-4a0b-a44d-b7cb3ab73662
Alert tags Alert description The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.
Other info This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.
At "High" threshold this scan rule will not alert on client or server error responses.
Request Request line and header section (372 bytes)
GET https://firefox-settings-attachments.cdn.mozilla.net/main-workspace/tracking-protection-lists/0a25e3cf-57e3-4a0b-a44d-b7cb3ab73662 HTTP/1.1 host: firefox-settings-attachments.cdn.mozilla.net User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:146.0) Gecko/20100101 Firefox/146.0 Accept: */* Accept-Language: nl,en-US;q=0.7,en;q=0.3 Connection: keep-aliveRequest body (0 bytes)
Response Status line and header section (846 bytes)
HTTP/1.1 200 OK Connection: keep-alive Content-Length: 1463768 Content-Type: text/plain X-GUploader-UploadID: AHVrFxPLXKETx1Ixp9OfWJPYUiJH6mDehHPfpBo1h6moiICi8JuT2lhUHWXo1Y9CgJpB0YYFLuiprFo Expires: Mon, 15 Dec 2025 15:29:26 GMT Cache-Control: public, max-age=3600 Last-Modified: Wed, 12 Nov 2025 01:14:18 GMT ETag: "3fbf0d85b17b796f9558065c9e8da1a7" x-goog-generation: 1762910058270431 x-goog-metageneration: 1 x-goog-stored-content-encoding: identity x-goog-stored-content-length: 1463768 x-goog-hash: crc32c=E7JjmA== x-goog-hash: md5=P78NhbF7eW+VWAZcno2hpw== x-goog-storage-class: STANDARD Server: UploadServer Accept-Ranges: bytes Age: 359 Date: Mon, 22 Dec 2025 19:29:37 GMT Via: 1.1 varnish X-Served-By: cache-bru1480026-BRU X-Cache: HIT X-Cache-Hits: 0 X-Timer: S1766431777.029060,VS0,VE1 Vary: Accept-EncodingResponse body (1463768 bytes)
a:1762909803:32:1463744 ÍL{òá}Ò¨çIæF9ê 5nQØØp¼HsÝE´rå÷*áÖÍ9¤@o?®rCïî¦ÞºqPGlÊ4G³ö¥Á.IÍ?Þíû¶[V¸æaÆcöFüËæ0Êl (GÎéõR;§Ybl7»â|4¥)tÁ! Á³Àê9öÊËWp^1jÒÃí³ên¬A=øLJ¢ÁÿZ°¾çø¬P½2à¼GêÄÙçãÊÜÊûYµÌÑÅ»ü]ôáÍz¿V+¦¸´Ìy*Lµ`¦(ñë3® Éí£í6ÐËDÄì}Ãû¦æÛÛÄ£ÿï-3<F»äá«?ºß*ë/QÊÓJcù¡´ÂWM?J§ìqý"KÁFµÐà) (èË¡ Ñd~¯?a»ØÈûßÒEå2m«!lÎì^b_Ýn÷$Wü&FÏû̲ÜÎNldt©0P÷»ð¨ÈV¥ÖÐTjRÞ^Vt#x /Z1@~¬ùØ-;ÓTäÅR)³z3ùåßÂ'ïÓ(h;ûXÐà}àù[Ã*UÙ¦LJJ°B,qÁtãðztÅa¡p®<ÏdhÐõELõfÅÍ&8(rÄ÷©ÙØüÛ;DY£Y3õüR ñg·Ì[¯Æ£Ö(G¡3§§xi la·a5Ý·ÖZMWêJ×l?×§¤(-è0tløFqCÒÚ.ÆL¨ÕdÏ'NGîp×EF',b«ÑPâ×ËfçêÔ.p`tÅ© MíÃé}~¬oÑÐfM,×jð½4µ%Íð>=ìQÑÂ<΢ù@ÜÌ¥5efIVVvJ65Ãù§K=An¯ô,l<â àßÞä}VÍDÒSÇÛrxåפZ;¿[ÑÝ5¹Ö¸6Ã)*ùvwUx4þǾ·p=¨ £w;QCÕµt9%ÿðMOþôn,3IËˤ°·HsŨPÈä£ZÙ*x$ãhF^y/<k5WÂÛ yçïgÕ¬NØÇ·¹ÒýTô} bú =ZcüÓ{ï=¾å»éB`Lo LoýØ)z?FâU?^óKòt«Ç¶¦`DgIÌ,¼m¾aÿJÂÅ9üaILÍá¯,b£\·Þæu¥Éâ§Y9ü\ªÑ ²A¤¹ûþôª²ß/ol-¾éèQz:ó2?ÔÃüñe/ |ŬU´2Æ`´4HDLìÛQÃ9 W÷k&}¬Þ}ßÍþ¿Â¢AåãèàUª§*P·jöPXÎæ±ïµ¸tVzÔ3(±·¼ìÜ2¥ýDï^3YryÐ#}û>JpÒëòh».ßmj-Í1.©§|ÌX¼®ºr_Ì:J < ´r Õ_P{×(bzÁ¹Vo[)Ô`Ø£õw>«ÀUð îä"hë0="_öÊ=/ ¶>[õæB2àe¼¦éä½èù~ª3Á4)È |¼Ë!È«*À:* 쿒ȴ:½xÖÀ'aùÝ%¤úÕ¨Þ×èžկÿÍ/f3íúó¬arÈ9»áËKaÀ³OD&¢õÀì Ejmë%hÃvaäâþêâ+u±%µNËevà6£ ûN¸¶$)´ôîÝ×dSñ¢ÈÀldìÚîhË-9'KøK¿JzÊ÷d·xÄ\S¢]©õ$¡ØXO·PlÙÕ0Ë>ÏÀè{¯"Y~ÑdÍ·\Síµ´µþØÖH3UiA±¼Lç1&2Ã÷9çï¥,ä Ðܽ=¤VRà2c[P~MpT°¢íÛSõ©åõÇú²Ú/XëVªû 4L¢uûKGÝk²ICðkN#«Ê¶a4Øàµ~8áº÷ÓF W Ày¾ÏGL¿9 øáA?ÓÉ3yÆqqP0AçÉÃF¹¾!01AÐ*jDâ;Ê&ô¤º¤½Æ;Isf0 ý·4B=AÞòfÿw :ñl¢µÖ_¾ö¹ACÕ+¿JsfúJ@«ÀÔùtè¶ÉV¿ã¼iS1%Rm$ÏU=Eött<b^*5v¨ÍwMMdÇ{ðMY:ñEm¹%ëð¾øÖò=^¯,+·75ú$%§î ¼¦zx½N®wîRÝÛ7Ðên9°ù PÀÈmÆ`d:Xü`R¸0ß·©ä¹íÌQÃæ@bH'»ËJºsTú»âctûVKgMhÖ¿®Á?ÌÉ{÷¸¯@äcz Y{ÕåvNÉB;î ½Fh© ýx²åLq+eYp1ÌO7ù&}¨Û çÐCMþ¤)m5n(á¨`èºK>sû*Ó(Çóï<÷iøC S|L¬±Õ¤k¤-Íöv2Þ>4i3¹Ê t+7ËËdÀ «Ás^>=¶µÇÌn"QâñÌÇJôªZ#qÁ(ðÔÿ¸Øéücsä7˨tñä]6·uäO-of¢Ë×'IEnwGq íP¡)uøhº5£9@sTnÀÄm;A2üF±4d°7øoqRQÎPXAÀ¤ C2P¨ê =«%¿ç9of¹Èaìþ·²XbɺíwJ$#T6¥Ý'ñì^ÑãüTOÇñØ?s¤0ôWÖÓ#§0¿TÄk>.Úoÿì«iD1»"fÅÅå`s¡å¨p¹±£áoXtoøêrb Ù?dN`EõTÈL[ä<þ$f*¬>ߣ)Úí(èGµÑÂÑÌ.A¿ïÊ4RÆ+E¾!_cAºÉÖÜíuð5ÆÁç]o$8__-t^l×lY³ã˺º~NÔ*¸ýPüäUÌpÐ~EN1ûÍP!ê4±¤½wjð^W$=jDÖÿß#jáèÐö÷m&¹)ËÈîAôÑ=£_?îir¿3dþ_(Ò¦¤|·Û)ë0ÅØL7-ò3sª ÚÛ°1_&Òx¦sÏBà9ÔJ¡g`D=õx0Ô&0ða±G©¬@M,¾ªg}ÐßßîÑèu£e¸Ãà[Â5ò;§°· *EnüÚYSIùöOµkåÔ§ =àü¶üT?^üg0¿øu ¥iQäÜY(H1s g6¾Zu+Wße¤Zn,¾ì³`¡ÂLSÔ ]á¦eÿ#]¨n7AEXNpÊ"»cDÿ ø;I$à/©(áÌI;F;º÷¶ý×¼ÿZÁø-Í%aúecÞ@Ö¨¥ygµ*À\«êcù×rÄÄ)Ä´N¿uã gÝõÎñf¡R_úz9®Í¢*¸ ñs¼¹)oÛðyZ9ÐmÁØÌsýÇÌfC2T^íÙòÚéÑÛ-ïÔl#ÀP9±#ò3t´ñL[ôÂïá+càäæ2#Õq=0¡³Òq:áï¥0[î5 ÓÙýw7=-8ªÐ/¿éâ dÊP¶ÄtTêªU%¼Á(£¢! ×î ·úsoïÛB³[ 3òGüC«ÀU ¡1FKí$ ØA;îàT .ÒÛ(¬mAlhN³m]$r³8Uí¶n4§Mî¿Ö'^«ée7y䢬0*m1'§â<79êØÓa Yñ/pNÖ«´ ¢Õ]LAÑÅ/+/)týÁÎ8>ÑÁbå3ÃoE-;µîu¼4ÄaRESw«.Îû õÁ {éØ5à¤ÐKßMv±ÀYfp5jÕL÷EÙ_ÛWB0±ÃD¯ÀÐ9&Ë «lø,Öz<É B}9[ÁÉáDë)ÑËñÇ<¦i8 qV¤ü¾þðÿá+CtG"uÞ8dM§×á±ÐôÁ§Á(>Pè[#t .î S9íÜ]Ã!ü¤O§]úæ å|iÃÌ at·ÊYML²Âém=íQã zÁ+lßomlòðÿ¬ ¥µK#÷¤ ]`6~.zx!Çâÿ"£j=\GØqV7v?À2Çø7xå(îñÉüdzÇöà¶²þVª³<ÈP ÷h/õ}oµaQx#»{à$!ÕU¶? íRZ âУȦz`ä6ò_ >õïYô)éM2-ïëÕjéê$#g%4?Ê>7¥ú(¾Ì¢àé1"KDÕÏ Ö§oo\ôZø{ê¥ÌU.6Ñ`ûäKýuO8ûî«È%NåÓÌd,À¦GܦëðhÈ6»¯Í\E M¯QuMOìcsß˰ËPàb ¨ÌèU=÷ ð1ómñÿ ÕkGN6ÖCái§þTÇÇMv©+ñÕJ²b/¾ ÒÊÙN«®v{î9¡¸ELßTÃýGXIWs3ì)ëÛ9 æórßxƧ³V<¯é°?cÂ9y dÒ¢ØÝn^A©+\ð+î`61C[:is¡DõÕkÅf;¤£Q½e<òï&!b}㪠( j"8ø ¸àæ69÷_I:ë!÷»çØ-aðÓ¤ÒT«]ô0Ü\-T~1í@ºüÇ9QJäV-êùÃ'ÇDX,0ñ0vMåcà¶±xàqÍä 6ªY+¾'±Ö¬íìÈìdä±µÈÂ\ZÞ¥)M3JÀnó3â *yX<Xc@1òª&¡òù¨ÏÁ8oÁt÷j)_ àÛÍd`T=z0ÈOÄGÛý~öqWgÌñuj÷ùK{÷&O¬´ëÚô©CU£O´Ü²¾v&©¿Ó· U5¨¤ÞY¶°nñÿ`ÌwRå`E°K"A~4⿹£¡Ûó®ëÅÏúÄ/Myåu+Ë0³:ÐáûÇZ¹RS%+ì°UÝë^-bîÁ°û~Ù¢ñ1k3ÞL¸Æ$ t·Ú»Ö}íÛè2û¤ß¹ø¼H,u.,«,qyV%¤K%¼Ir;;_D&X@ð«:c<ü6pß"ÊO±±Ñ_þz!oäG÷©^=¼pÀbSïöZ»Û}i¾|TÔVÈ3Y)óõKQþ_Õ{D,ô¦è%ÄB5t¶¥ÙË£EÛm¶Ý³©Ñ÷î«<ÂØ®Se©&òþ+ Di ÒP`u×Aï´<¢B¯¿ ì[R5¾RmÉ4{¦ëkgåí ÉóEÖòJl©)RÇÀ÷^åG¾*!\8[d¯è Æ£ï³@û1´u¹nÕy/`s¼1!ïE¬9ð<ø:cÎxà×dÖÑ1ûy¿9³:~iÿB/ XrD«§qõ`Tkuä«CbuJazÏø¹Õ\uv²I~6 þè¿wOõ°¶¡!ó5µÓfwÇúU×;lC¨éä+"+u´¨¿h4Pªt5µÈQ?bôø פD®° *sï{ 4q3[¹Î>æµ6#Âv]xÏ[VÀ'ÜøYFë2À)+G±-È_G>¢8ÅÎôÅlÜk·£ÝÐìóx)"¶BxÆPoþ]WgüÕësÊ»·g;È^m2kÓ©êv¡ÎYvØ_ü6~ø@cg,E¥Å¤ÇìÞÊîLtú $*ªÄÜÚ.çÜÇæTIߪ(KÑ?wdÃÚåW|p·sfU|¥Ï& )RDL[o ¶$!;o_ýÓ¿ZñMÔ=ìëEÛ~7¼(ñçJÈÊ_Fǵã·CuÖó-YEô~nÓ×U¶á-!4ËJ &0+ȰÏäq8U5ÝâØÿ íªK;7+¦9¥3+FÍÀ¦÷ zsfR¿P{Îý®n¹Õ96mÉ6ýZëã(Ù>SMüPûey4äÖ=eÂüÈÜ&õÖÞN¸·)oáÃQk/ds)íÉ4ƵÛZA@y·oâXnÄxâ-¼ö0½ÖòΨ.{#B5äÖäc×»hr\Ù¶{hÿÌ6 `c*ÍWͳ¶öÓ÷¢ûh÷;Éý¼cÚÌÖûcàs;&u¬8Riy§ÞA^±~]Ëq®Â%D 0el-C§ûg ¡6°>d.-äà;ß5Ϊ»ßZnÊã²~¼5úS¬ò° &_\À\ .¼ ßÚ4ÇK4¿e¯U(V+ÉWfÕbnÕÉBDª¼B]è¼0n=M:''ïî,×)Ân«Í.Ö¶`ä!©å211¹~ÃS¡©°î © ¤»¥ûsì6¯FÄ;ß)ÃS$ð¹'b2¾¹ù#ÓNX Öx³u®¸I/ÛåÄZ¬s'Û⥠ò¿EçØÁÄû¶ß@oo}dù|ÕQ©^·Xß©½@`vxÎ>Õ48e`¤2tñY©)cb#V]ã³F7½£Õ¼yuY(G?.(å®T½jf½pÝióE57GBsøÍ5¹;;[Â'ýÍ{l)CÁM~°³ÿ¹¾ºÐæ¾ kã²Ú1G[w&VécûÆí¯½v02C|ÏÅ Ì- u ÷z9G|¿µrêñxnºH?Ñj á:Y8!j"-MðªObVJÒ br ¦ ÂS¤foæÿ?QRMBRÇÂk8ïzàÛúõå:¾Õ(Yî?ç:Î|ÑÆeÄQóCO²?H?ß¶¨lköëHö»ý9Îv¬¨¯3}EF.ÒgY3}&k|z -\Ö ø)ìð#þNȺ" ØÃ£x'3CÎA²üH©¿Áð°þkQ{Öð[9ÂZð¿xUÎ_UÖí*ÔùñÍi¢Y¢sb,¯ö¯EáÞ$ Þ¥Õr,Ʀô×Oÿ <Ö £o×ø69¾¤üÆÈ%=ع÷S×£mº&ý&xV®:Çí~Z +S¾6-HþûV§½âHôÂç"b \¤ÁÿÿKèQgÞºl^`±<7Ê´Ýöü&ÇEðÉà H±¢8é¡#¯ñö;îEÓaÐáí [ýËÍAX`ÅÍ!¹[½w1©ÐE>§ÙßS=øâ¦Ç¸ÂfVcmU6 ¯Â[JJ²ÁFÔS<GÒþÙx} ÎÚ«_\}1¢CãR:4Ù,ªOY®föµbÀ³ywuÌ5wK7aÑ3û\Ïm´ Û颰88éaY{·# RÒwx]«¤FÛßó¨6%D7Ë'8Íòrß¡ïÁX,zûZ~u ×Ók2¸ñîk&CYbc´ÍëÞ4 >¬ä=o7äá°ûÐÅñ=OjÂÊ òÕ¨øñVËzSNıfÈÌ£º¶a*¬Á¬£f±æÚ2ÊiÁü²ïÔ {6ö¢ ߣ ×yÓl¨_¹<*¢¿\YÖÅäJýñõ»°(xJÃq³¸1K¯Jó4 QvBêk¾õg- hÖFR(5_ýQwªá$ äíÄÑÚp!q}b¿â¢KyÞ¡ö«ÏdÐRñék]ãh{÷ÉÐægwP Dá2@Ö±±,jurò'bGX!ägàhôCÏÚkJh]¿9¢'ÌñT¹¯íή$Ħ{õò$?4÷â¶RBks¨^\D´. ±îBG²ì½}¬YjÞ£ûD7É|ÒBíÕñ;Åjá{G5s/$ÆÞ ¹"JýEEtñ!òlrmçÐKKjÂPàÏb±ÀÓÊÖêþH,àÅf`ç¿pOùu×cÏÓñ¥ºPGw?J-BæúaU!º[Á;KM¤KmÞöåÏÆYT°d#Wøáêjû+¬¾Êûßî}qØêÉLf>1°ÞMK$,ñEû¾Þ©Á§=k«HªÎÂÝQå7Vû³W8LJå¿O¢DQZ·×GïJyi1=tÕd ÓÕ·_ÔÊ]E@«s|Ká20<ò5y!juHá$j>;ÎeUq9<{|nÁ½æÃv'H>ýBàR²ÁÏe¤·HÌ©( p)íÒ´ªXÝX µÂö3¼;ÛÉ:7Db f:Ò:øN2ÅâlK±G¾Èç>U½ãS®yàOgs©ØUteDÂ1ÒÝG{¬gBë»»½=!åÀk&àhÊZr:Æ<å§ yìÝ,AWû '±Tà0 ÍÉ.ì]ÞÁü1Å v~!"Üç×_J;¡¿tÉáñ 3µ¾ æ¥l³ÔÒ`×ýðÑ(;ÖÞO%1Â-?4Z|µEÕý ¤Ø|à4g\Åìç[ó.]<άH\ìd§Âo>N¯Mº¬þ[TðÀöJ4õ^#þä+Ãââ0+TÌ0 óÔMRk¶Â¢w¾m8 )ÒR¬ÀÜm×Ë((ÀʺPUµ!¥×ºnt+ â¼-ÕÓ=³7wgʤzV7hz($®C²²Ð@|»/ÒT|6ç`«=@µ8í5² ñuÙ ÑØò³eu ]s¾èSK M"&ÃÉItÍM5Åä#åÈÌë0.tìKhSÝ w*ò+íxP_+çyeÏøäN%SÒî#¿à¥1j¡äij3zк}>äóÁ}FøúåÑÁ®@ô~@óm°¾Ò¯j<s÷ú¼ Úø]äEÝþÅ@WE³ÖJ9BΡKÇvmKrÛ^Bü s¿I®.õ)KÕÅÉWÄÞ¶¯-ò½¶ÆÝ¹¹¦ïÃAc~7SVõ¾l·¾ ¹êa¼Ô|Þ(Þ"çIwx Nõ [b¶;ü[[¤ÿ£5ÂÈTQR¤ãRÚß®W¬R&_ÆtQÁÇKÕõE×8=SuÂJCÓuµñQêÝ\qãWI_½m·½$| TÙÞÔ³%i§ÆÍbRèæ½Rn¸>¬MK>À49x§ÓÁ-²K_Ò¹»-nóå ÙÎÊý5`!ãíº¡Ù¤Ù0rÖ,,Ì [Eb2L|ÐæÙY,zí·º5aî·,n¹ÂHQ :aå øä' ¥:¤æ}:ø³b5ÃëªåÚ*ÞD Bâ·($Óˬe¡QgÏÔ¼¸OýÕÝoÒ³1å#½~²=ýájÕÉRJ`}²á9E ûí-Ç}3ÉfI÷ÖöMè0ó¢Âü ¶÷%Ôü`9ô¼6mß7¬¢t3øJ=J®MÅpS¦§£µ¡äE¢$C»@Q1wêgÝMW¨[«6P §s=ä>ª\eGm´Äæ]è\qÑä¤ð1çͨií(mzνWàØäiÔ, FëÜèsdò¡f óMÜìcYÀÊØÊ~t+CÜèEtKLºÿÚà¦È<gN ìnLL[\3àÄ-¢¨FÅ$_4îG}¡âihILä±BÁÂèr6bæ§ðxòñï+Dp)Y6vGÑâ{¨Ð÷ÇÛûÙ |Îs·ÖyaÔúF4|Nõø!Sq0}À¥Å25 âW¾Å©¸ï4ã$/aDSLOVaÊÃOöl¿¡ñ¥HbàÍl=G>§ò¿ÁºÓÛa\:'ÅÅSbßhg2±á%J Ù¢& q¯6E+TC0 ÷vÉ£ íEﮡ<tÛëÂ*úów|&ÀÐ×4³'dÈ| Ò&gw!Å»Q6¼BÁUü2`~êZjÊG±N³ûÚÅ0ÿdæpáZÌûÙRdhù?¹`¸¤K'±ÊÀÕê¹ÜY¶ÈwÜèqÏ3Ë_z^y/4\[gï÷ôázHÛK{¯nSÓb>&Z³rû ym*ì59jår2ß2:Dz ¢ WtÙïÂ;PïHà¤0`Æ&¾dÙã+Ò*³rÊö !iµã)h, ñ¾ZvSìXÌ%Ñämþi±Ñ_VØÝSMP@z~ 9$¹èdAJΣJj NY2+xd×RT^#i,Pù 2<ßRÈs5®/ÅeuÄnÎÁâ$ë¼ô!|ÌÇgv»i¹rø£Ò ¶Ud÷?¸Díè§ÄIPë*24zËæx0öÁϬF¦iÅwë%ãg¶pVÊ»J`ɯô*cªÉT[Ûkî3µL4r}ÓÖ¿Z 2d?öR]|lÂÓccóÊãzÊë¥Çs oÕWÊ|ÃüSëâ×úùÌn/îcËÄ"åiA¶ä¥Ír>Ûè?,ÖÚFÞ6vUÊ3uY¡wsHjÐNILZ·XîÏÞImÿxS VO3Uɧi þ½J¹¾ \¥nh79p]=¬Î÷yá>~ÇRÅ[\0Áôçy/UçS÷OÛõr<a÷mö 8£æßçEE}ÈÞQ^,#`PÂÞqð¡¸]!íz_T¹ðs!ôÑãâSÏ dǽi³¾Äg}æVhIhÀïò0& Ô¡>ZN×`«@/ªàmÔGz§Î}V\ìQpV'ÌmF½Ð`` ø`³äÈ×øÃÏ!=n6:ȽxTYK׫>\h@Î w>ݸ$VÜÏE§D¤ÅIKµHGm,Üs4£C\ÍÎÙ÷° r;Æ,õæ@Àj:£L(ôåa' BL©TR?oææ²ÔÙ,q³íT¶Ì]aï ÙH½öÃܬ]]Tx|5%ùôlV} ¦MjÔ8høè¬réîo1ÌR=ï ⣩ªÎkF'&Þ YTΫ®³Á´'_ßFÌ×Ï2Ó¾ãOý¤4étWêD¬¼v,¼3t®^Êø`áwBo`\ ýÛf¿Àó³ï^fq´YFÙ²¯6bmÑÝçjýWÃ@0ijE-ùÒ_;bá]U0wÁ8Õ\é¶ññÕ¥Ì^Ï+E´#^ßJÙT©¹îgM±è5lïá~ °ûµ~%Óx`Ó>þÝ¢óHÑB ðT(ëÀØ®ú3Ò³\Z|57H·^/Ì<^Xê½ïR䨏ìj®ÁÒeö^}An¡©´BÞ5,}Dtû«ÈÕ:é[ÒEfÎ$ëÖXÛÁ¦.Z'ª/4²èé.²¿wÌÛ\ñ¬ëqñêqZ,í@ÏåI Ëø#ååÔvÉoî×/Cäæ3ßV&5E~Ù=DW×ù,²5.&PQZnOø>*C¥a¿7"ñJýìÔ7p'ûÔ¢{C¹^ÂZ×C¬dI/=g±Ï9y sTÙ¹| .óçûs&«Y§¥å¸ߩ#¨þP~ôÙ®èÞúâð^ú:.!vuÃ9®!¨Y ü@1Çïáz³À¼P$¼ UûèìÁ$£b_:,xu@äe;KzD@z4Ãi¼DþêXá]L9ï]3KHÐ}&3WÖú9¨@À¤õöb¡y)ñGIÞØ\xH &F°(PÏܧ+£Nó¨Ï,6-ÿ^¡^¢>8g6ÞípxlDD5 ]94F}¤ÙN©@ÎÎÖêÄi¥aCþüGk8!²s%Ò.ÃèX¸ª>ä^vöËÍÖ¬þ«$¿e n}øL9Óei 'ýÛÀ%1»I0r!ØÎÏ,*¥é.ó9b-#á{dãOãh0ËF9,n|©ì׫ز!´í`ÍäÊ3và^¿aTÚÍ:)ÔJVv¿xèb³${íÓ2'ÿZ¶mpÎ(CåÒú,?ç÷ÎQPå Yo«Sâìüü «Ó¥/fryóþ1´Î3÷0Oq S¨7ÐÁµÉÛ³«n×~)¿ð§Ä½í¤+§~×hò ^,Í2éhcàìAØ÷à ÷¢ÿâ7dÀ2PÙ;T&ñÙõÚç"}YeÆnRëåÉóñL£I<Î$ÞÕ(ê}²ÛÆnäøÂ6©iÅÕ§ÙKïRßçJW%íúÓwù,¡ì%³[ÈReE (Ê»$c§Ñû.é]BõÈÝ4ýÏ/¡s1züÄ¢ÓÎ,,**d7ÒtÿÅTVë¬sv1l£5ý`§D|/´ì¿J¡RwCOÎÀ&Y¾ô®y /¼BWLzkrýs;±B,êø°sE²ü ÌãÊú¬%õƵ¾^ó»û¼ý¦×ÝÏtým ´V»^û Dl×GÀfº[ÑWÄÃSm1w«FÞòÁÂ?Ǥ8r!\Mx 4 rØ>]µrõêip$|.nxÓÇ[ahuÃ*v.ê1\O«ÌU¸"³gAë7,óC9ÓST£t vA.!wP,D£úvãè*ÛKëR²ðÂSüvoÄÇ97)OÉ v·èÜ~µÓûñaÇOºaQ T$±ÓËôU;rÛ<¾q"F`&!.Ý©µ ¬u~üõ¡þdæ®1vÔD=£èáRË&ùdc¶´V4'ûåDÀôµK]43{~#´4.[á¹b_HÒ SPÄû¯ÄÙUÍ]ô¹5¹2ÿ`+cqüÓ9´Ì²t:ɰ֡¿ ÔðÞ{§?í°GÎY]øÇJÕsÜîÃM þw½áÁQÞôÕÏ¢XZÅ.×·M½Ô*Á4KîjéBtÇZêø5)_ôFħ;c¸ðÏÏçVsíLãçÒ©S: k5LÃËñ*5髼Þr5ZO×|c\ÝKfãO´7-^\É ¶t3ä¸Àdéñ^A¸=V]Þñð/A°&9%Ü¢ôqyð"àW×"³ä4¿ýÁÂ̦« [/M´ëÜcÍÖSûf=ÖÁl¿"û8SuÎ }s`#y2äM =`yl©Ió@[¾.O°ÐWØ!]©Ó滾RZgN·ÀfdrÛH$媵fÀâ®[F?ßîD®§¥(ú`kÕ¸;]ÜyìÃPÝÅGR»V)ÀjØïM¼·I*MqqHûWìÜ=gD|¢Ð¿Æ9)YnÇevÈ Iª #ÃÆ±Ð §bôòèA4P¹2NrÚÌÜÄw¶Uq:˲9<¼4YÍSÆG¦¼MñÆá4H^Õðcú@³¶¸£Ü E!ÀÒmS7ú=Å©ßõFbÂÃpK㳨¸ñ¨¤Ò 2xÈóѼ½ãIEG¶äLLÙª/¡¦(ѹEkâ¸d*3¯]ÿ÷DÛ8CbaÇûýéU}hitÃ!ön¡%³L¾(á*Ñ`¡.é³¶IÙÍäþ :ýCæ_>;nþ"æfÍg/ ɾauÌ·X¥NÁqHõ,cu¾< ê5÷.Ñ\|ëP»0)ØÑu¬ÏÀÁ§~3\ÉK!-`qĬԸ~R¼%iÈ*[W¶»ÁÕíâu&Wï4ðz}×ÇsÇYÚ~GC.p¹A3l)ÛÿXZ,å´ÿäGúÇ|Gj)d7m<&öÍÅD·ãH˨ â©óp9²^]ùèu»£Kï´zj¨þudV)¥m®çîtº*õUàÛ`Wö+ü kÙ«øÌ«²íOÎ=Ü<ÚiKx ®Äx~3îú£¯v¨À¤áuûä¯xºýɯº¤K2ò® çä²f<ë·äÒ4OLeBRcÍo{V!Pb¤ßE ýIß±ª%ê¾nþÍíú²#ùô^Å2mßÊÄ6Ê£î¢óÜî¿2F0NÅ×íÌ;:JCË ÙV¤9¦h®$Ϲ+ǧ\ît`XÈËÌd6±L- ãÞóQ,£Õhèê#zÝð;4®<ît~òc@òâ}4A°E$9(Tîøx#I¯Äy ÈÙZ× óµ?=xi̾ˣìÛÇ¥¯¹{G'| Þ[D;% Ì¥ÎîM'±3¦KË4 ¢1'À^"%Û#ÞAýY(ÃpÛÅN ªkQMÓéi0°½¥ð ¨ È`³@êÚF;Ô4¸ -iSw¡ÎÚL²q"ºû&&´>YxrZ_þÇ\Ç}¥G¿bÏAøC¢QB+Æþòïgûµ IQØß\û¢UDï)ò9ÐÍA¼´«FÈÿ¯Å·Wñô-±d¦Vä⨪e×ÁñA+2òÓµ°ó@Kî¤-tÒ§ØM¬ÏöV¶çó}·Õ¨Ê²n(A"*á*A¸¶Nb«÷ (tÒ"9¸dô|cÚ|Ïõ¾/î£Ö¸Å8urÖèòÆSþ-4%ï V ðÆ_ Sü X N»¿]ÙjOÛiJt!Ú»¥\Õ5ðCÖk'Æcb¯GÙY´9³ûìnú^ªT'Ý´g ³?¢¯Åá;©×{+Ó fõn<éidâÿ LcñÓCc¾:ôr¿ÅÃï7,oÎcuw!ù²³±ðx!~ôM§J] Þ̳«ÿÌZgW]K³£zu`ßN8ÝøãOy'%º´ïFè ©×=Fía%êyFãéS¾¬ÓìËèwp÷ý×.wÒuæpöýøémçhµ-]ÖyK5Cñ3>ÐÅçÃHûe´îdC 7+¼Áà·ç<@XC?dí¤eKÂò]³C \0ñÈ`ªÉýÄXWlovW¹ jÒÆ¾së¹âû3öçÄ ö- ½>J3D DÙD=ð·¨ ¨d5â#¬2Y4Ï9&U( ä÷¯æÅX-û@}xî#/ð:pì63[®DAïMXe5dYª&bÚþIýHúµpûl:÷ fú¤¼&+ýQ½k&auðÊ|R>sÌ|Ç gþX6î»ô7x ]ªL=ýx$èê«J4gS1YêîhÈ·ùð aiw}üTkðn©¯G®J½[&_Ò&J_9YXÏtH´° ÏŠĶnßýîobIä"fJ§¼ØÞZìüì©?DZçWmb+ìz^}*}?ÌÂm¤s¸Pïʧ94í0F@-ÜU¥öSS-@ûÍd «@}ö$³5ó]åZ(¿Ú&A'Ö7"YgÛE»ÙÏ?àvy(!Pª«îIzJÖnúÛc?Êâö lÈ/ñ2NÆeÏOÊ!>®ÏnÌ#s0j¸ê²ÈÌ<.|XûÁº7ºú³ö ð·l°ÖE³¯vØÀ$>/ÙsçåWòCáýÜI¾Ï{°^ùâêpѺ.b®:cøwε?:ÚH_YäI¬²CÕ>«[«WÿÝH;¼©Û0¿ÌúU¾|n:KsäT!3wYé=/Þs`¨¤ óÇDaû¢Â[ä6¥Í*%ªx%Ã]¤)§ ÐuyÏ*ß+dBòFµos~õàâ¯<»dØ`3 ÀZÚÌn½ús(pEË=íºì¯A²#ШOã_ìÉúToo¡iùç5(ª ÈZÜdrsÈö2©´õ^÷Â&´·ÁÜFèZßuNÝ)Èz±w#¢dST'ºÅìCëâ=®h)¿ix#á¡)ôfªC h*Ã8Ba¡«ÍÖJ®´ùuC]Mj«?%Ó(ØO²sÆZFæ'£&Ó©¡Á\¡<7Ê-Zÿá²rÈ`Ë$V3åÄ Î z¤LÑDñ×íí£eçP<6ì84¸á¹Õ@+u§eÙtÐR¬('_ëýÓ¦|uàîòû\e*&^] vàS© Ü_»¥äSÃpß<£øGMÕÔÎwصá6à²?Í1ø¥AùÓWø¦Éÿù½yÞÙ~0oü :;$Z^¢S¶ÒÊÁ^?ÏcSN (FäkP çê çñâÞÄb£¤w-DÏ amêvg$Nk ÜÏˬÁÿÏîZ?ù;ǯ4/9øñeo$oL^¡\ú°³É÷qüàʺU5îîzÉ=ÚM«ÚáOS±ýÂ6¡êhÕErOHë h[ Ì" Î{ak®$Ç6òá/c]ËdëWíÄMr²{×a9½;fíÝ8\Öü"vÏÜ4·åî(RqòVÖÁZçò¢0 7®$ËWrUéêÂìrt`lÉ&XéØr4*+®è(\ªsO//è§¶ÔSÊ&Ö2ÌÝ;¥\jʯôsoÆëÁo5DçHý$ɰ{íNtöTÚD£}1sô)DêýD¸! E®¨Ê`ÊvÊn¤þg¦¬Í3¸¶ß0lÆ Â¡t.XëNE¨~uc)E¼'w+z1âð"àØç¨ ûÿçî-æªÒk=~?Y`¾QXÛïLhrÛ\Ýz ;ÉÎÉ®n¡ ©®åu`ÏâK0Oɾf×vÓY$1I-ÿy]Ør:êÖX íO«ìÜÁnÛû»t«~<òÉɯ®a\òp¼\YêÞ¥Hï°ÀüEÈæÂDÆ#²? ³{q£CEßÈÚ^ÙëT{`¬ZÒÛ{k.é÷.Cêtý ¡±WâÃÇ«AZ_Xû¤¦³³3Ðì¨Î,=B+&<H¼Rù4¤ Ü?Õ¤[¶*qÇ[ðæ§5 HA'bDW{*NÕ¥H¼xv39> ¢Ñ< N{¦èeä!²ß´&ºÓ,£¼ É!85k¡öÿ÷B!ßÛÂúÃ2Òk&¢kÌ4¾Yõ·qør;Çæ¾)öª¾Ôäíª}HWàX¼/ÁÈ.xªÎ ®6§÷ÍÐ= Yá˹ 5Øø0{uA©6£} ä*s>È¥tyͺhÛéf=åqR#¯P ð^Ý`ëï¬Ñqó GÞÄÁtz;1·¼ÍÅ»¼ÉiX]áoDß()ùhô%÷ª1-õ4»UR=ÅÝ»´ìÅîI3m]áÁxðô=ö¯Ëqì«VتhË2å!4ÜÖ¦8P»y$$ŤÂ"-`kÀv> "Å6Îô+is,dÏÒÐ:, ·»d¯¸·eZ-ÑW×Ý:vÇG"©¬;l-LJ"<t*¶öO'5$J¸ÊÒy端%ÙZ¿¢r 5Èa´ï&ÞáYÎÖ7aàÜô~¹!±²Ú4Mþdgðd̯NJȱµY×;®7Üs?3å¹Kò³³ ǹ,½½ »Ñ}ÍHæD®²p9#ÓAVþcXWÐUK¥¶-B¤Y¿XHË;§ô}ÆÎ:¶A-ÇþÃ~A×íJÜ)oÿùE§´éÉ´éêF/!EQ>ÿ¬Þ`qÖô {üRªE+9_q´`-ð.ñ©7È|òóPCÈwÝËù!¯9 y5Ë3%¢73ðbµb¸i×`^æeÚÖ@ĥοZT Z(þëal´\DüÅ £ËV Þ)/}|´¦a Ô¼ÁtyrĨú0 üÚõ¦¤Ü(U¢~D4Jmn]-±~Ø<3gç Ø×;¢=ÅâÂÂ[jµ-oߦì§fsÓåKKZξÐ%KËÁvàâÙ ÝÃJR§ \ÄælAÔ]ÕÇýñkV6Z«zenà1=óürÎãVTìKmΧC5äøõõy×ú<!)ñ!È[Pµ¦àùg½¢s nþþîòr*;fC|Ê6?OÏo=1Ò;ºÞÐÙ¹3Ô2U!Рز]F²CVgûGð¦Í¹!¤âMùb]ûb¬ò}«@.èAÆ_Ôüb SîÞ«¬ñøwÔãÃÚ¸ çGµ{N5ÊoÜL?;#Îù °|ç`ÑF[)º¨`ICº×@bzL*x¹ó ë#ª*2x @°ÒTî¶@ÿð$9Sâê÷@/1ppg6e쯲ü³1Ì2Ý#¨kk<Þø,ã oDhÄVTû .~Æ_\n85Ë|9QgEð@¾r=m°¸"iÞá²´á½_¦N$øJºÍu S"ýTí`Ç£ôÚè¶éÀ ñY=à"¦ñÿàneÆRTä¨:xs^ü^-u»¬Û·dt~*,Tî]å[c×I iåÔQÛÜa·ÇcÁ3nø±&[lÆ;1æ¹Ë\`¾C(¢Oó&U³ÖH (þdxõÁ{nl5°³BwÿÃméÏImÜ븶ÝúãÒM©ç lvT¡?ä*!m0g¨:)'nÖ"ñïÃuÏJ>ªeÖ>a¸fïD`w6Ü&Cú":üèeü UJÙ8·¦þóĵ Òm/ÇõâË/¨C¤qAãèPÐ>Û Îjú͹h ´î¯ÿ&töO'÷Ñô'ãys~dQ¥!YÌ·ÏÒo«W£6Ù14ªæ3×û±>ÔÙ©TP@'¦Ï¯Ù=ËNáæ£½N÷}ªÏ@DVq×öÀiªÿ½ÌÙ ªY?ÄeþYrÐb÷g½rÒ8þüÒU0Vík¡ÕÉSã=k¾Ï!³ò¶Ú¤¸ßBõxc%¸søñúHÞn Èê^Rx¯òKcRüwd"_a¼î¾.PÚßJRظ@Ãd¼qùí ÅYÎ7û .:KßÅÕKXñC-WåxY¾i'Ù«¯Ô@6¾¬;ȯÔ5®þüöB(Tz¢yðæ¿åG#Ús_Z+½5!Ö´ÛCÐJòÆý¿' ïn"O}âÓMM$OÆøfº|W\lèØ/IþFE®Ñvhû]Vaiw¢íéø¹Ùdq PnlRäº> \»!ù4!(úñ» ü!¬Ñ}õèáGaGÚßáÅgÐ"«§^¶ö@ÚþÓëÈØ[æ²%}®c1ûá°¤¼>sÁÅàÆfÞ©M*M\ÁÉFÞù¤ °mhóYÝAª¤TZ9qÙ©1m1~Ïb=»OÛYØ+ÇÊbsƯW<WÄEÓWÞVyÚOX¢ÖJ0,¿HÖi~idÛ:qO.ë)So;£Ô,MÜ®ééeÞÑòÅ ËçÑ:7FoX¦ëÜpQoèK*¸jÆC[°i êjãïÿªT$Äd³Eg·.1ïz¼-Úháæ}ËS½ ºSø&m»yÈ"_]Z {èµi6Z1Uã÷ÙL; ¨ð;bL¿9; d¤~¶5,ègkg!³Â>B\ûó\¡¢úËls<ÙçÆ~ #íд~ß1X"méþ[]Ò ¬)ÚÊ¥G¢þHñ i Y~=cM!1þ1`BÇüµ«ãç¿Íþ\øb¬Â=êYų̀¦Ú,ª`'E_?Âw¾ú( ä·rSWG} 78ñÞ9 oÒ:,ö+µæO-ªKî7u¢Ep²Ñ%hÞ$E°&¥f¿ !IÕ O' |¦Ëb ÿ «0 ëñyÁGKæ½pQ{\iKwµ³¸Vx¼¦Ù+KÞù³{ ¬·ñÃtµ*cá6Ï%yóYæJê¸wõ§fÝ0çbÀ»ÁQLtÊ@èP¨^Ôl í$°<q; ëwLÜÈØ ϳd»¢JïhEE©E9eÖh?Á«à=S¥*àh|¸ á °ë{ «kÙÂ:Ø¥é6çs]VÎ+Z:&+(ów¬@r.:p¦ëÒ4Jü^Gï §÷ÐB¾ÖZ÷$St_qgÅëFÛ]B+tw\û6ÕÌÕ¿O31QTixÌÕÎÚáÜ`¹J´bòÁ>e½´ç!ðwªÄ£]t@XÕñ¯PÔ´~9a ¢ng¡PÈ6ÀÍIÖ«ú×Þªè<Sñë¼Å¨ëLæ¸@lÓèBÙÒíÒü½|âLöëû®ÎÁÓy§a²Srw\^·ÙÛ©4ݾgÎUâÌ~À|È*\cͤUïí²ë "ë0cGé¡àù??gìê °öþ ¿9G·LÝ kBë¡Æ¡Ìiê ¦¹ýdß|º5¹Ûé¡Óê#I>¿` ÃMNÓ:HáIç¼àÞñ¨öß(2JYDàøÐ÷ô4>«òKW4ª¡QMgDiï*I ½2wyûýÏç#ÇTù(PÔ$á&¸ öëHÛïLÜXXü]ÂU¹üsd"á»sa©7f]X réÙ(ýbDoóÒçnÄs¯´>NÕµbTÜáye}gaKsOä!h(Öʺ,frnxZaJQ:M±ïÏj¸ûãf¾*jÙö-K´DKîSì9 @ËèLOíÁAqn®ã Z xÇMÐY3Ì-URµ¯c?hÍ7èåOãûÞ½OF ¨RýªÅ¥Ö]âM/¬ø ]Ð4ÀÉÄÀêqC:fz¬ÌIãC G? Kå뢷ËcýÄìÛÊåºØì^WÛ×ê²Z{kHWð^^ÃL.çæ ë1\¯Á$¾ShQ ~ÍÞû<¿sóËrê ¨¹}Kè/pØÓ i;¢r´r«)øæú £Û1TrÎ)}°SROrç!VÆO;æûÇʸçïÛ$2¸Â/ÔO¿'¬(µÇ3!õT_Ö±4ªM,Û¾LFå µ:°Ýçu¢S´Û· 2¶,ãVrv-ò°®â´é>_»¾%;§ç߯¸OÏu)hK¼Ô? ©Î%F»£r7·¡Eïm]RÓ2+γZ¿aØJÐ3émS,¢Þ%nã æ Ô%ôºøp Câ¨ÏU5jEhÛÁUKB¼ÈÔ 05Tè,bDáÒ N /¶ÓßÔ%7µ~ò[B ßôxÚnùþ-7e´×ÞØ/æTÛªPác®Ë¡4!)Léq±(¼TØÝÒÓª¥íl´RÿrÝ%ÉFs{ò)§ÔÖLÕ«=íà¿÷¹£ÿÞ*ä 3ÚÐ +Ö¶Sµ"HÞV+»ÛL2b]È1>Æ]úü&ÊfþóÈbûÛ ¢ov¡!£jÁIã9|¶U³ûðâ¨Q¿òv6À[]rQIá&ýhï$ãýâ{ãÆè(÷`|ÏyàÒÜvA$rWn%i®Â+í(±³áÅJÃæñê!ÃgItþ¦-Ý0úè&_îQ+LÖ3Ór/AÓíòEø¬kÙÃêHFÕóÌI)kw°vhÊííäskpóà´ C(¿ÒI×þ6ª§| XPĬ øãW§´ðfîÍ4£u°£Jèh<°:èå=§_åõçÐ@~ÙØGG¹¼+ñ~íñKUl÷]7ÞyA*cöã7æ E=QØÇÌQ³2 üѡɫfKX QÈíI©ø 8;û0Þ2Ú! éE¯tÀQba~ç!8ûªÙ û;)Xgîûrþ¾ïÂRxÈ7Zh&3üÏfa¢.ßÐwäYbU½m#Byïø»üÐtÂ4ý9Sïz~ЧaTc_ºw®Lè VyË%A7V· g¶ú®(+¯ ÑÅè¹V«êÁ8ãRå5Kë~¼áÉm(PÿÈëSô`¸C`¼KdÎ\AÖÇc&7A?$ÔÓÎÖwô-¬Ði»Ó0Ø1n{°«ÿ1 ÿ1ü±¿÷°Õоpz¸°sa.öÔûhW|ä¨x%IÞ¬#Ê0E_vpô=Q¢eÒG¥»/Wcr¥t!}Óz²ï¦hHÿõ ®þ)øÖßïqÔ é |£È!ùÔ}Ý9 Mm{]ãôhu¯>¿«}?ð×`n.8s#aºèËìÝX¸®Ô®õ0?ÁÜûv-Ý&Nu9è^ã±DççàóÑÿU¾E0§ÊÐcj,v¬$sIÕ¼³¡ÞÉ¥&;ÿ&*oâó´ÅÖôßÓ\f=Ç»nNÕQü-ND:å/Ï´fÉi±ß°*¡êUIÁ³-Äuù£^[Äç«£àçÌÌÑ(Qaý ù idx>zbÏ ¢ú7( êõÆe[rÅçä}gñ\9³ÅshrS\¦AÌ! ~£Öö¹õßǪ÷Ųìq D¹2Þ<éL¥Oÿ{U)¯»Ïî"*¦ g¨P.® ac¬Ü åçèy_gk\x0a£C7ÓêNõäÖß*° W½[±.GE6gÜjgÞLâ!ß()»ÅY ¼sæEe n÷k EÑBy¹*r"_mÕåK^æÏ1¹.yýt²! ºþ)¿'"mFzþãC¥in+ò&»s!â }ËI?$ LúhµÁÈãWg¶û¥bÒ&çZ´5La®Âb¸ßuâIò¾ã¦ÃUnæ½uÂ{k(rÀOMå279ùJ¸,T±\ÃdÌÄáTjÁ~«DeÎÜQp»*¹3&+üTìK)nV³eqØ©`ÁqhÍ»ú½t¶þ2E]ûßÖ´é©Ë?"×®VYK(GÈÉ:¾KmR¤Ò|Ò±T£©+Âù?QU·åØÎz zÿqfA"¹üh:_X2R&UGR¨4µÃöØ"(©9 çã4"Æ_IÁvÍoEÞûÚCGåçHbåµïS¼¾p¤)l¾ìÐKÕV²NÝK=¥üJ(§J¡TÕq¹%GaïÞkpÉ?ÑDÔcUCù7\ÊU©Xµ£g¯x¹@|EÀCÍo gÎ<¾'þóòÜï Z=?Ó[èæL©¸'ü¬BG&\kV§*`9Êú©ÉKHf~dÏ´Q² S¦ÁÄâyûÌþ÷wаػT¶Äö.UÜ4ÁLZéá§ÏCñnîæ´zNy´0z?y çt>è±é±¾àí>(ÀFVÑäI¡h½VÞ¼Ò×ssD²£BµzdmA°ª¦ÊÉåY(ÑôËÆWk×ü'ÌøûNH¬ÄC÷tÕÚW%L¦"´$ÌÀ´Oà#øRÙåüáWî7À £ír>ÃÐ?à¨k!ÃG¤fx½ÑyZõå¹1 @}É@!¼h&ùǰ¼x3F³6d. Éß˲qýõêæBak`6^p¨ç|ïÉ4`Õ½¿ç<]í+~'`Ù]Ù i6j 1æ¡½É <DR<fFND"Æ"wUU´iµÔh5Ì~z%÷FòÎTâ¦2"$ü¼vÃá,r¿Óýß ®q âÙ3q?j¤¸§t.ù l:QÚÐÙq49S{!3¡UaZMÂ1`g;e% e¦Åzr 9ø¢fbCÒÚtØ>eYëØ×W¢J8ç<Â÷tª_AþAe8GðÏtc©dLÏëkû> /Çûx¢±¤l§n å 1¨ZÓÅrÛ½þR½Å¡éW(l9_gmo¸K©&`³K³²ª` ·àß½eò\xKF<l>?/âU]rüXnf"¼vâè§wÊ~B80 iRägÅw»üÎ;ôó¢IÐ;°ëèhCÉWl³¾5ÙêoqSRܤfk aì\àcàa½7îʼÏD5öÍrY¬7Ôp n¡u(öHåB5Á¨ý³HÞv®?iá±ÈúT-ºÐëâK{9®Ð¿HºNsùwöõZZñʤAoJ $HÚÈ;òraÅvz6 zY6ãé>óRà~0~ªñeuüâjàß&ÂX´^`qÔr _$ÿÕ¾OÔ·¥]ßÄ¡Ò[©ÐXµ>VBÈP:\b_ ÇìHWtj¨Cùÿã!¢ß¼×·àiPw¼±ýìE Ul©$0i§òkÐ×rLã«¿CbbN/^ûôûbcwî LMw1H}LO,Á!! ¼rûÐG%²¶Ù:)<EF?Xµ¥(º@â·j%$Ûoª RIÜÎ ».¤ÆfHð³r.ººßCu&ÆÁÆÃa`Añ8ÓÐ Zy+G KíÚÉB¦VìãÀ[| rÅÞg2q¹¬ J£³InqðØR«ÖOLèò*®l?;A%ÙSnÀô+´ÖKLPxbø`ËÃúÒuÌwÏ]?m@ae«3.1ÖPI+aLN>O5&ætÕÅcÅ¡ªé¸9º÷ìhJ²þ±ÁÊ;üx¶ Iê=`=/:Åû¯3MVáÎh;¡+ÛÒZ¸WmÝ¥uÐ5%£³º±QØÍe;èæ6 tA2ç ±°j¬fÙor*{êåH0+V$z¹nÌ ïQ}.1}¤ZY=ÑÄôAg%L°®pXTÅ©cjÓ NíæÛzC ÒwµGÍÓñ Â6°Z1xð×IË8õÊ@Áý1$h¨ÉÒî ôl¦¨N§¢0p«y/Þ=çÜÎJÅËF^Ê<m ìBV:ÔBðß"²pik°u}Mý>¨ß&à«5à,Á°çÙ§<íø%®öheôÔ¢,~.a¨DXÉ´¿ÅØ8î0ß8ËÑ8º1K¬<8ØVZ}÷H,¥»â ¤3Ö.Ô®67¥ïz!a±Ý P¬òóálgH_GR&ú:N(ÙZ«'t¥áÔß&f¦î+²@â¨o@¨uIж"ȩ嶸Ý;«Ìº)÷o(è,"jå6²Ctí1 ) XyíÙõp¨5uüèþ¨À H¥'ÔiÖ DvekÕcVÊí2¾þ÷iF6$³´p±àÞÓ /MðÀS ¾(H¶ËÕ"Ýí GGÇBN½ë ³äô6è°5dñ¢½a":qþ-rýëÞ/ú¿ÒÕ_ñù©vê´k~_²óaI © ݨ¦_AâúGÒäÞyAs¾_¯!(duG8æþuñд¾Í&Õ-£Ã¢ {óæ\·W´±ÖBe/}Cå6tð%ï5ÔK²y¿Bd¨ã|u ':/ ÑÛaùpçg®ó[öböÚIØRÃã>ºB½GAo/º½°pzÄZëÅ|nÄU«=±7¯Dæzü:usÜ)V´.®7÷z(Ô¬Ä>ÏÎ8\*jÎ HTÞÃFa±ÑýE¿)\~$cGÚ rV Ü2J¸¿¸¶á)ðÈjm%*Õÿ¯Äo еO¨<îyw&~ç·~¬#¿Rè£ßT'¥mÕLTqè #¸iýMÍõE»éJ>éì%J4UERÐè@g´Ä-ô2ÔwotÊ'·æ1ð4ñYAfÉÅkQ7]°(´9[§Xs ÄFÃk¼Fù¹nbGÿ»»O12]å&¶ E±±4gõXeùk}?²~d-¡ûÞðbn£¦TgyýµP5D×~xF7ºîHU®B÷ÝTHª86Í-W#Lu0ÜjT8Ò-À¼~ëfbÎ7Zlaúç«õjî/Þ6xß,û´xZ`bFåî«JÂ;*yue§_wM¹½.9g k^ÄTæ6+Í.kw7è\ô}¯#=ÅÚxø$~0½8R±Xg²²ø9w$ù¾-Å%Lc·%ÝÒÖ»l#_ú°É©T9éþ¹lÖØÊ2á%E#Ü={>¹~/¯,ÃhCǹõæ¬d(ñÉ~:¾`H÷s¢ÐRßYÉ#ZÜçU m%zì^Nêý;ÍåÞÖÛg:Tt©u¬ÉÇâxJ!ôÀòSA°Àìý ¼îÊRÖ"ö±YM¡#Ý n±SWü;ų}UA£eæ vA¦[Õ+ÃÙþ1*¡feV:ó °b±Áê`/(VQcUx#%/ưÛÌÆø>ãÇ9{:«ÛÒ «kþ17NîõyÝõóÏb§ëÞ¥\83ËùÞ&$3\cx±¡urV ãHuV±ÀÓíX `0WªN\}}J>==Ì=K|Ò5f áð²¦^N·['áêGrd=W¸úÈ·X\±½]d:ôG(ï]Rzö<idG>°èõzøïªÚvd¤"TÁ &¨Ì]³Ý!ï³Ä ÛÅKBOðÿ ÎI :K] {հ׫գÝúrQn=7W´4Õ5`1yæV´FZI±ÌA§¤fÿWJL²Òéãe×}ÂðGÏì~}¿¨²Ui¡ë8@¯G7~Bh|2wi×ÀXÉÞ¼tHÇAÇS±µ6ù&~CôvOyé?á: >ðhkùôt¾5òæ1,/ò6ú°ëÒ@x¶×&òª1W NkØ8¦ U·l/ Ò¤0pí*+=±ì¼+Þó^ yïZÄvWxÓÁ£¾åÐ{¹Y)¾ÜÚ\óÚ0º»Ôpe¢6@ª{ÔZÞª>ÍóÖU32bRû'Ë(L2Äø$K¿'uÅ¢ëÓâÊÑbI®?üãz~y4z=¥¶±b ¤ÐØ;0pÂÇQu,I#zÅEïg [Uçk-·¹tíä3ØS-Ì/"ËeÔ gÖ.¬n øZ)öà7D[À ?Á`ôxÿ$'!Æ4Á®ðA7@Í6»Ã¯RªU&sÃÛ¥á#À¸ÌÛµßí+fÿã2îf~ÊiÉËS×Ìé²ÁuÇXÁ!^h¹ÅÒbzæ_Lw§ïPåâìêÞå³Úã6/Â@! N´>_lBòBLq ϶踦QZy'K8X ß9ß·¤é3éÞv©·WOm¿ëÑâWÚy0ÍÆ CÓQUo®ÆUß5äf¿$R¬è>Áò5¨ØÛàny½0´_g$FpÚ{çà>V¯ê ã^壡ÄAò¤D:âËæGípK´Í4ç¿5¬¨ðÁâ)\jüæÙUjÛkfa.wåc¿¼êæªó\÷üó£ p&"¤llH~´OpsN¡ ¥¸L+üÐp /öJ=é¼jòYy,ú|%SÄàN=åSá8!U°M Z4~NùuÿÔg{+cp)#ÌÊÁËk¬{»Glìz3ø¿pþR´©#Ï3fDiLE'ɧý4¬ö¼"MïÔ9çyܡеZ9ûS©µÇ¦ÿí(²XtÓÑ×°*ÞTÖµíêø·äODåÝvbÑÁï øÑJÄ8^kÎdà}{+3ú\O=·|)}W`NLÊgçFô·Ak¸pqÒ¯Tº½FÔ å 7CÝ%Ñì3ê] Ã,úëdh¡M4RE¸óWWtGNxÝF¼TÀ`@oÔ`©Y7NRr j±e2äxxéº4 EZOJñ®·L3ÿåGAR6k¨¹Í¦þøRõ@þQ±'I£HÑÇñ:ÿäd¯&@l¸¿4C]®a;ögw&×§§l×"O Së×Ò¸[^î!¢-ÙnJÞ2`]íÐ)¸k©²)f1àIeøÔÆä ´ª×Æmè©£ $Ñ]£Ô£6|¯öB¶þüo}èNØ¥§Æ½rAÖ4m¨Hùw3[Úq-í`/åÉ( bFäIM®¨úÆï°)§[àârf%AÉç2YñÞr ÚjëÝüC°ÂQ£ahò´r-/ÈûÀbç?/h-Äê£#Vb¤ñÉ ;Up]ôǾäuÌ|@¯mM(£î}WÅs®KUDQàx¡þa øCÓµñÙß "¹0n7§Ï ° ì|DÄD¶¤î6ܹ¯qh"Í%S5¾¸õM¤`íäV8ñ?§+û}?kØ~ä rÊпoçmÑù,+9ĦXÑHÏ ù,û±×DW W¤àpI.Ù ýHÛ±ÃÜõâIzª¢,©×©9üÚȪ u±@aGÎ4+Íê·+á-RðdAÜê1®ÉdRìýjT k¶åË|oót£P[9n pIu*hÙã¥öª?s¦(fýmë3%v«¡$þ:ãY Ñ ÅuÛô1sEI>Í }eÙwUQU#p1Üj;úýó×-oÚ)°õÞúmµ¿rI»µO`eôUë¹ÞmêøR=WU^|85¤3Ñ®HCÉÌÛÀ¡íß0É R¢"PìÆò BòýĦT~?Ò<¥í¥K¶µG·y« ÈVsÄ1±¼Ö¥KòÞ¬þ|}wÝ èÖªæ#´hª}5åxRÜýÉMóç7oÑfÀHÅ>Áú`fÝ ö4Öj4¡kJáíéÑâþÙ&*w¹ÍBõép6mv]èÖÈÆ)FÁHiÜÛzãIÖóùîq¢À2Æ%$o*qQTä=*é+êuX±ÿZúY@J é s=IC/²Ñ÷ Z epÆ-ò±Ð¥AyvCîM-ù{#î 8©cV±b}Y« N@pde:?Sþã,cydB¡#ïH+`Y%£}¿(4)y:Î׸s6"~êtá¤*Eëj\A£f^¹WÇ«òÝÉý¨ö7&ù)ûZ:!v¼7î&sÐHÕ;èXJ½VxÕ ¥Á2øn^@Îw¢ô¦ÍÄ´0̦Xô7ÌÐü ßõéæèúɯ£¢ãð ~ ³*ÉJ×ëQÛèOYA à °Zy³C$³¾ã½z®§µõ%ÅZýæû'&@é:ûêð h$8õóÕtÙë¨(ª¤æ ª ýLu oq¶u8²{a¤-ì|;1Ø^lXêÓ¸¸1üuƨgPLýØÿÓ0tK¹§«Åqîù<§ñʸc±s'1sMÎ'ÿ»§y®t§§~üy~=[Ë4_¥2>jw}Ù#Ø¡¡y"V8³Vs(³UðM;g3²F¢¯} éõ^CnM*«÷fÜiFðlr¢h\ ºUØ$åîQ|ºmiü+&"r{bkKdºM°½bæU'~XÒ¨nÉf³íõyëÖ 2\ }X,ÍTsý@£F¥0 à Á¢ÂBºpBe+YÒ÷§ö$*7ÞSñÇî¦*zSt°uU"zWäêÑD#ÊØ£àUB±Ïu&××ÓæÕ¨ªÐ°½?oßêÎâb!Aâì©oçÍ4]IÙw 1qð @³ü>¢9Þøô`:±å×PÁ}½Ú²õóÊz;Mêvfe¯ò×<DÎ1UyÄk`lHÆðw¨ôZ_ôkÔlq¼Óûû;h.5úá<»5ÓàêT.~gÖ:íÑ<óL®XD/¯ 0é3.4â² n&ab+ÊJ4)ƾ8Îå0ó<oSíöJO϶Å:óÒr×a¸(îóE çCÀû§KË»vDùà#y_àc¢ÝDæµ}dLÏ$ÖAGô§óÀÇbÿaÎ1>ø®ÄµÃuª¦î{Åwý¬TðQjhíxØù9q¸ÆÿO¤@L-Íúì£×¥@×m4NxÌ,<î/- AæÖO;²Ó~PÎÁc,7ÿtÈ»³Ü`q@0ÿDTKäV ø=LïõÄä~ϨðÖs$·fúÂqÆHtNÉhï¢iEGß§!Ó_,f2wxÏ.ì?ó¾ðsÂÚ£u¢'ä´á¼_©Ç°ÝÁ'¡ _?à!ò¯ù곸ÒÁ°ácv&à©ê¡kT m°m]Þq/Ð?¿½á&ýW_23ó+ÈIÃäJh)cñ.ÍgGùÝêäð£/úߨÌ}ÿúu×¾_ëÆm}Î-®LÚw §í Õ{+XtÚêJdÆ)ĶÉo ¹GY0T/la cN»jú7eùò}ë£þò IÞeéUîFULþø½ùEHñ5NØCküÚÒwñÉ#ìNü:(AÒÉqÌOµå©ñüÆ¢ÖcZûW;¡w1øQY¶â¾¡ &r ÎnµÖ ÝîöX½ DÇi1 7^þVfXBÁÙ_ª¼hGïæÝÀønþhã½þÄ˲_:ÎbÕϳ¡E63¹|â7äaÒ¶¨RÇ[]âÁÐdð´FÍkIÜÿ&vu;rCÚñåÊ#+ù9Mfòÿú}¨8$njŦe2¬Æ»~iÛjA»9cT÷{T ÆÁêpO»aY#HånøVTèY\åGÝ·¤÷bè¤RçÌOp1 û´÷ dÞ¥]AOü£Ä¦ÀþH]T·azU ÂÙ ¤S3UdÒñ#IQÞZaåüU¢géú7 ÒYĦîÀ¯áË(íh9jZh©CvXìáǼÊÇG»|¥§RFâP¿´è,¾½Á·óÓñï7Giúkù±_f@«þ¹#ëÄÄÄÖ±yl¯~ (+ÓÙºd½-(6°2¯n9Â6¼^jÕ~ÍàTw¶A´ daOÂÞÄlb4Ïe{3F£kiçKÚÐÏÚ+»¡ óÁ¯¡-¢Q®ÁÏ÷¿%aMݬ(MuãÉäþúþ÷ r ¢l0Å7g(ÖhªZÁ+ÿÆS!4¶}nCßAsqb´=¡4ìiáí"¥j±dhoýÛg,cÏá<¶å3Çf$Á56¿U½áÝg<$Qlzm8pàÃ?Ëè5Ho)5wjÿxÐ2#tEù6òu÷ÏhÄ ýi§_ Û|Y¡:»X=uÔ}-£'£K«ôeMWÄ Cå2ìßç«"ØâV.¢ë7MÎà𠪱±t+P¾ãÚ>Ï{îG3<½31 w5ÆàóiËÈÓ«[¬Êº&; "îør¯÷²¨14¾`Òæÿe±ÝF³'0´0Þãj)~^^ÉÔGuOgc:K5ð¼kùBMwþ&Eb.õY¤7ñ¬n%üÂûGUMË -àåLqgñðé,r¹¯¸æïHõ«.OìYËçîÇ|×£@οþ¯ÇÝXi8ïrZuä<Uq9¢Ò\ÍÇdD Þ=tç#$ ,¯ËݱÇ~t±8¬mØÊÀTV´ø>ìý0ëcPÒ1g§á.ù ÆÖ +.ðvÙ¢Te¾:·3ó9&Bf<ÿ òt`prÒÃRd ûgËK9òt]vÐÆÔýÆä2zr-È ·½0ê 2´/+µã¶»¸|÷z¹÷ñ\ÎÂäͯ^¾væ¶oE?6xÛ²¬O\æq[øïuDà©5Ò9®Ç¿MqDù9pX©YzéËa ÷`ÁáJï1G/o¤p¯5`í½~3½ïÔåiÂd¬G_à.ôdDq©6ðÝfè`<RqÿHì$AoýûôÙGú}¦eß`{Cú²ÂZkU×Ö ã Ô§ªGuÚ©¦@äiJ5Y</B=òQÕs/®Ê¥K¦Ø1äøûd¸îß!ï8buBf[¸ô¿8O_ЦÐÑOzFeÈPw`¸?V¡¸x¤6¾J×ëÖf°ÀÉÒªbh.V YUñb~ò³´jC)ã.ÉCòÜÑÕÓ§Ûöls|#ÖôPOÛ Q«]Ä<,;`(â³Úõ7õ¹Üѽ6õÙ 6 fûÈ©×^Aµ½íJ(óOkº©6ÑVv<A«`ç2µ ²Õæ×ú§)éÁÊý ;Ýr&ú#ÏOÝð1Ìã¾ÍÀÓzè³44f/Í iëÕiÒÁJÆGÓ\GXÅRmZægCö»,RËúE(RKeO¤+/n©×±sï¶g!x a~-¯á4ª?àP·öXÿs£È«r£7R%ß *#¢kLä¹bá^Fl)c®{£ÂÒ°f¡qw-¦n´ðRwð¤]OÊ,Ç-©ëô7Ç-º§?x`æXÚI¤úÃf3QØKå(>4êë¾öÙ˲ã¯ÑÁtànÑAÁÒèk}IV¾§Fét²õb|¦`y±¦B¬ø£î7@Z¨P®VO ´:(ØdöÓ1ìZÓluCkö e;¶b¢Ì®ôÜÛrVÌÈdÄöÊÁ ñ@ R9e#ê÷ eZ»Ùd¿£øÀ;ÍõºKiG"¾¾lÝßÎ!0O³~(QþÑÿVhHD|Þ©»ri\¥%S¢sùýû*µñ{3VÕ¾5#-þ 3)¥^Û!}%N^d@ÀX×ßIfÇÈ TÎK¼H}#Ù)lAË#¦Å¨æþM7ù4¶x0ñh£Ã¿Ñü+b3åyÝ£!úËá éì'ȳ £'ÅaÑC§' ¥o vµ *òKSø÷0¨ï¢òæ 8_Üýí§ÿÆø ^öþ»fý¦õhVL¦p°,¸¬uhM¯^̤Ù{}%-~Á161¥Ðò ÐÚ@j/ª0>@:_é#Ö¯s¬s¼A5Xô8VüL[EC;û¾]Ð¥ÖÒTHVÄîíwº!&æGK±´ëF¯@Ë¿T÷öÏÂuÀÎ&àÚr Ý^kÙ³mÉSU©I¼ÿ¹S¶uÐ䢲gÞhUâÓG]h(Ö ¤ßÄÓùÎFI¨¨·Êùð äAÃz!$Q¢£øÅ µ=$`ѺᨠW¨Â¢E¾æÓ{78ZÑ´;ÛPO6$m¶;ÊÁJ ó@rgYÉoq(JQ¹@±ª¢ ±6h `ÔG¬ôXé»ëË.§BõrV()¯CÃtñ꺳'Ê>*¿§×æÌ'èëãÙ´xùIß´«èNõ^¡#Ákó)Ó£oWÒ¡ ¹uÙ:¢òtOAýô®Fª"Z³Zk FúÛÈTÐ61PUJhVÝó CXzY- 'T-&°øg§Óñhb1ÝÖDV´ æKXÐûµ&Ò\C =ªð{Z&kãO ³»27d{õ èÝ#÷ùW/®¶W-¥¡C¿¹ºsbCmù¬+U"â'_Ö²V"Ò´øê·Ô$eozõôC s3ª NQ3ú2Nú&dyaNUÈPİxCøQ<CÃ^,tîd¾§ ã1¸Ú¹ÚàbnÉÌXapÝøþoc&ksàb°g2«óoÂVAÉÀmOÜÐÅ3Ð<Õíâ{0ÒíN²xQfF=©Àg±OÒÿ ?H§MóPÏ °Àj~C2ªÎ£ ¡&®d^ø£ÅO"@PX¬iw[K¨-]΢#¿~´· ËâjIÝÃW`ÑWùÉlÈä´h ÀJj×Ê@v3BG0y7¶Ê ·3yL|5JIy3¥§ ½ÚíwbQ÷P¢Á¶áªxíCm÷¦DÍîF÷²µÆpAÕDpytá?Pñb]ïùï8ØÝ¤/!ù¼bb¦à·ñüËãÃeì§ÒÈw'{b-¡Ï,µUfÔ9úPv·ëm<àU²bú¥£È ¿* +¨ÌXÛÔÝáX×9ôaxÖ}çÃy¨;ÊÎxH1gÙ^ÈËUßÍv 1UÅ0KöGÀe(GfÔÊâò¶Êîz¬¡léjGѶ$ÁÞFI»¬WÜ :ÔÎ`°µoË»Wj³;«ô>voÑl^è)Á3"aÐíÄñ¸á>þ_@¬ tüA;?»;ÕHÛlø×ü>:#øv^ÑûjP¡¤s8 ·>Ì×µk}y¿"Û)àÐ"ò[u0xýݪ¸I±X[æÀÑÐRÓRÊÒà{fÍÉV¥D®¸&~k¨¯ )T;FY =ØUÍ<í¨À«ç,®q,÷,{óÉÆÙ+-i°Øù#;pÙX6ÇR t¦d~¬ÇcÔ*Î6#æ¡M@ß+0X6ù@%ñ$øRU»FëIN_ndOAæçÕäqª?½OY+ÂãI;(nmÈPSê!X[UðBqIîµuø( ťùjÞ~騡ú~è{Üoûì«¢«@¥´¬Z1Ø!žõλ_Q"âr+spøTòY´«O¢OPK4n|úUâé' 6à»udÀ6Ï *Ó4Òèûm²¨°[(r;9ZN+Aßvæ!àpJKü8>å+R¦åÌñ89liP[-ưò¡r¯%7âÒÖt.³_« Y &Ì8èz0Ï7Áýù®ÜÈ©úÎÉðp® öHéì³KùôSJ7óðúh ÚB&íBéÏM TÀ±YªÛGÖ¨7màyô(Zµì»» ãK8aÜ5 ¹6@0»Svɰ4W{¯.ë"äÎÐufáóÀÊ_ýÆoý_ÏM·ïúO±ÏÄ #"f¹n¤/c#±¯ß¿},6Gô)¤ä]µw[$@7á-ûÛfÆ8Z»ÉK·H%C^[¸ rå?K^êµS!ØÑ&[~´ÉÈ8ª "¢1K¿Oéº5|óA!Arp÷KJ¡Ì1»þ6oå!ð'ÿf±ú¾!©CÒG¢@Ò A´·,@lã&abÄÊ 7#þ34~Ó?p³ýÌ6ÿ¼×$Æ $¼¥7Ör(¹ vòè¿®¢ ý2,!pzBØb·Æß "\ζåÊm]çàÑô,Æ_'
-
-
ZAP